如何在 Ubuntu 14.04 上使用 Nginx Web 服务器安装 Laravel
创始人
2024-10-17 11:11:04
0

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介

Laravel 是一款现代的开源 PHP 框架,面向 Web 开发人员。它旨在为开发人员提供一种简单、优雅的方式,快速运行一个完全功能的 Web 应用程序。

在本指南中,我们将讨论如何在 Ubuntu 14.04 上安装 Laravel。我们将使用 Nginx 作为我们的 Web 服务器,并将使用撰写本文时最新版本的 Laravel,即版本 4.2。

安装后端组件

要开始使用 Laravel,我们需要做的第一件事是安装支持它的堆栈。我们可以通过 Ubuntu 的默认软件仓库来实现这一点。

首先,我们需要更新本地软件包索引,以确保我们有最新的可用软件包列表。然后我们可以安装必要的组件:

sudo apt-get update sudo apt-get install nginx php5-fpm php5-cli php5-mcrypt git 

这将安装 Nginx 作为我们的 Web 服务器,以及运行 Laravel 代码所需的 PHP 工具。我们还安装了 git,因为 composer 工具(PHP 的依赖管理器,我们将使用它来安装 Laravel)将使用它来拉取软件包。

修改 PHP 配置

现在我们已经安装了组件,我们可以开始配置它们。我们将从 PHP 开始,这相当直接。

我们需要做的第一件事是打开 PHP-fpm 处理器使用的主 PHP 配置文件。以管理员权限在文本编辑器中打开此文件:

sudo nano /etc/php5/fpm/php.ini 

我们只需要修改此文件中的一个值。搜索 cgi.fix_pathinfo 参数。这将被注释掉并设置为 “1”。我们需要取消注释并将其设置为 “0”:

cgi.fix_pathinfo=0 

这告诉 PHP 不要尝试执行类似名称的脚本,如果找不到请求的文件名。这非常重要,因为允许这种行为可能会允许攻击者设计特殊请求,试图欺骗 PHP 执行它不应该执行的代码。

完成后,保存并关闭文件。

我们需要做的最后一件 PHP 管理工作是显式启用 Laravel 依赖的 MCrypt 扩展。我们可以使用 php5enmod 命令来实现这一点,它让我们可以轻松地启用可选模块:

sudo php5enmod mcrypt 

现在,我们可以重新启动 php5-fpm 服务,以实施我们所做的更改:

sudo service php5-fpm restart 

我们的 PHP 现在已经完全配置好,我们可以继续。

配置 Nginx 和 Web 根目录

接下来,我们应该处理的是 Web 服务器。这实际上涉及两个不同的步骤。

第一步是配置我们将用于保存 Laravel 文件的文档根目录和目录结构。我们将把文件放在一个名为 /var/www/laravel 的目录中。

此时,此路径的顶层目录 (/var) 已经创建。我们可以通过向我们的 mkdir 命令传递 -p 标志来一次性创建整个路径。这会指示实用程序创建构造给定路径所需的任何必要的父路径元素:

sudo mkdir -p /var/www/laravel 

现在我们已经为 Laravel 组件预留了一个位置,我们可以继续编辑 Nginx 服务器块。

以管理员权限打开默认服务器块配置文件:

sudo nano /etc/nginx/sites-available/default 

安装后,此文件将有相当多的解释性注释,但基本结构将如下所示:

server {         listen 80 default_server;         listen [::]:80 default_server ipv6only=on;          root /usr/share/nginx/html;         index index.html index.htm;          server_name localhost;          location / {                 try_files $uri $uri/ =404;         } } 

这为我们将要进行的更改提供了一个良好的基础。

我们需要更改的第一件事是文档根目录的位置。Laravel 将安装在我们创建的 /var/www/laravel 目录中。

然而,用于驱动应用程序的基本文件保存在其中的一个名为 public 的子目录中。这是我们将设置我们的文档根目录的地方。此外,我们将告诉 Nginx 在请求目录位置时,先提供任何 index.php 文件,然后再寻找其 HTML 对应文件:

server {     listen 80 default_server;     listen [::]:80 default_server ipv6only=on;      root /var/www/laravel/public;     index index.php index.html index.htm;      server_name localhost;      location / {             try_files $uri $uri/ =404;     } } 

接下来,我们应该将 server_name 指令设置为引用我们服务器的实际域名。如果您没有域名,可以使用服务器的 IP 地址。

我们还需要修改 Nginx 处理请求的方式。这是通过 try_files 指令完成的。我们希望它首先尝试作为文件提供请求。如果找不到正确名称的文件,它应尝试为匹配请求的目录提供默认索引文件。如果这些都失败,它应将请求作为查询参数传递给 index.php 文件。

上述描述的更改可以这样实现:

server {         listen 80 default_server;         listen [::]:80 default_server ipv6only=on;          root /var/www/laravel/public;         index index.php index.html index.htm;          server_name server_domain_or_IP;          location / {                 try_files $uri $uri/ /index.php?$query_string;         } } 

最后,我们需要创建一个块,处理任何 PHP 文件的实际执行。这将适用于任何以 .php 结尾的文件。它将尝试文件本身,然后尝试将其作为参数传递给 index.php 文件。

我们将设置 fastcgi_* 指令,以便正确拆分请求的路径以进行执行,并确保 Nginx 使用 php5-fpm 用于通信的套接字,并且 index.php 文件用作这些操作的索引。

然后,我们将设置 SCRIPT_FILENAME 参数,以便 PHP 可以正确定位请求的文件。完成后,完成的文件应如下所示:

server {     listen 80 default_server;     listen [::]:80 default_server ipv6only=on;      root /var/www/laravel/public;     index index.php index.html index.htm;      server_name server_domain_or_IP;      location / {         try_files $uri $uri/ /index.php?$query_string;     }      location ~ \.php$ {         try_files $uri /index.php =404;         fastcgi_split_path_info ^(.+\.php)(/.+)$;         fastcgi_pass unix:/var/run/php5-fpm.sock;         fastcgi_index index.php;         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;         include fastcgi_params;     } } 

完成后,保存并关闭文件。

因为我们修改了已启用的 default 服务器块文件,我们只需要重新启动 Nginx,以便我们的配置更改生效:

sudo service nginx restart 

创建交换文件(可选)

在安装 Composer 和 Laravel 之前,最好在服务器上启用一些交换空间,以便构建过程能够正确完成。这通常只在你的服务器内存较少(比如 512MB Droplet)时才需要。

交换空间允许操作系统在内存中的信息量超过物理内存空间时,临时将数据从内存移到磁盘上。这将防止在执行内存密集任务时,应用程序或系统因内存不足而崩溃并出现内存溢出(OOM)异常。

我们可以很容易地设置一些交换空间,让操作系统在必要时将部分数据移到磁盘上。如上所述,这可能只在可用内存少于1GB时才需要。

首先,我们可以通过输入以下命令创建一个空的1GB文件:

sudo fallocate -l 1G /swapfile 

然后,我们可以通过输入以下命令将其格式化为交换空间:

sudo mkswap /swapfile 

最后,我们可以通过输入以下命令启用这个空间,以便内核开始使用它:

sudo swapon /swapfile 

系统只会在下次重启前使用这个空间,但服务器可能只在构建过程中超出可用内存时才会出现这种情况,所以这不应该成为问题。

安装 Composer 和 Laravel

现在,我们终于准备好安装 Composer 和 Laravel。我们将首先设置 Composer,然后使用这个工具来处理 Laravel 的安装。

切换到一个你有写权限的目录(比如你的主目录),然后下载并运行 Composer 项目的安装脚本:

cd ~ curl -sS https://getcomposer.org/installer | php 

这将在你的主目录中创建一个名为 composer.phar 的文件。这是一个 PHP 存档文件,可以从命令行运行。

但我们希望将其安装在一个全局可访问的位置。另外,我们希望将名称更改为 composer(不带文件扩展名)。我们可以通过输入以下命令一次性完成:

sudo mv composer.phar /usr/local/bin/composer 

现在你已经安装了 Composer,我们可以使用它来安装 Laravel。

记住,我们希望将 Laravel 安装到 /var/www/laravel 目录。要安装最新版本的 Laravel,可以输入以下命令:

sudo composer create-project laravel/laravel /var/www/laravel 

在撰写本文时,最新版本是 4.2。如果将来项目的更改阻止了这个安装过程的正确完成,你可以通过输入以下命令强制使用本指南中使用的版本:

sudo composer create-project laravel/laravel /var/www/laravel 4.2 

现在,所有文件都安装在我们的 /var/www/laravel 目录中,但它们完全属于我们的 root 帐户。Web 用户需要部分所有权和权限,以便正确提供内容。

我们可以通过输入以下命令将 Laravel 目录结构的组所有权赋予 web 组:

sudo chown -R :www-data /var/www/laravel 

接下来,我们可以更改 /var/www/laravel/app/storage 目录的权限,以允许 web 组具有写权限。这对应用程序的正常运行是必要的:

sudo chmod -R 775 /var/www/laravel/app/storage 

现在,你已经完全安装并准备好使用 Laravel。你可以通过在 Web 浏览器中访问服务器的域名或 IP 地址来查看默认的起始页面:

http://server_domain_or_IP 

!Laravel 默认起始页面

现在,你已经拥有了开始使用 Laravel 框架构建应用程序所需的一切。

结论

现在,你应该已经在服务器上成功运行了 Laravel。Laravel 是一个非常灵活的框架,它包含许多工具,可以帮助你以结构化的方式构建应用程序。

要了解如何使用 Laravel 构建应用程序,请查阅 Laravel 文档。

相关内容

热门资讯

透视肯定!wepoker轻量版... 透视肯定!wepoker轻量版透视(透视)原来存在有辅助平台(有挂透视)-哔哩哔哩wepoker轻量...
解密透视!wepoker辅助器... 解密透视!wepoker辅助器怎么弄!教学盘点辅助脚本(有挂功能)-哔哩哔哩1、完成wepoker辅...
了解透视!wepoker有没有... 了解透视!wepoker有没有挂!重大来袭辅助攻略(有挂存在)-哔哩哔哩1、每一步都需要思考,不同水...
玩家交流!wepoker线上大... 玩家交流!wepoker线上大神,心悦俱乐部游戏辅助,确实真的是有辅助下载(有挂方式)小薇(辅助器软...
透视ai代打!佛手大菠萝辅助(... 透视ai代打!佛手大菠萝辅助(透视)原来存在有辅助软件(有挂教学)-哔哩哔哩佛手大菠萝辅助是不是有人...
教你透视!aapoker如何设... 教你透视!aapoker如何设置胜率!带你了解辅助攻略(有挂猫腻)-哔哩哔哩1、超多福利:超高返利,...
分享认知!htx矩阵wepok... 分享认知!htx矩阵wepoker辅助,pokemmo手机脚本辅助器,本来是真的有辅助神器(了解有挂...
据了解!来玩app破解(透视)... 据了解!来玩app破解(透视)都是真的有辅助神器(有人有挂)-哔哩哔哩1、在来玩app破解插件功能辅...
专业透视!竞技联盟辅助!202... 专业透视!竞技联盟辅助!2024教程辅助神器(有挂秘籍)-哔哩哔哩1、首先打开竞技联盟辅助辅助器下载...
推荐十款!WePOker有没有... 推荐十款!WePOker有没有透视方法,家乡大二辅助,好像存在有辅助插件(详细教程)一、家乡大二辅助...