如何在 Ubuntu 14.04 上使用 Nginx 网络服务器安装 Laravel

介绍

Laravel是一个现代化的开源PHP框架,旨在为Web开发人员提供一个简单而优雅的方式,让开发人员快速运行一个功能齐全的Web应用程序。

在本指南中,我们将讨论如何在Ubuntu 14.04上安装Laravel。

安装后台组件

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

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

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

这将安装 Nginx 作为我们的 Web 服务器,以及实际运行 Laravel 代码所需的 PHP 工具,我们还会安装git,因为composer 工具,我们将用于安装 Laravel 的 PHP 依赖管理器,将使用它来下载包。

修改 PHP 配置

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

我们需要做的第一件事是打开 Nginx 使用的 PHP-fpm 处理器的主要 PHP 配置文件。

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

我们只需要在这个文件中修改一个值。 搜索cgi.fix_pathinfo参数。 这将被评论并设置为1。 我们需要放弃评论并将其设置为0:

1cgi.fix_pathinfo=0

这告诉PHP不要试图执行类似命名的脚本,如果无法找到所请求的文件名,这是非常重要的,因为允许这种类型的行为可能允许攻击者制作一个专门设计的请求,试图欺骗PHP执行代码,它不应该。

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

我们需要做的 PHP 管理的最后一个部分是明确启用 MCrypt 扩展,Laravel 依赖于此,我们可以通过使用php5enmod命令来做到这一点,这使我们能够轻松启用可选模块:

1sudo php5enmod mcrypt

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

1sudo service php5-fpm restart

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

配置 Nginx 和 Web 根

我们应该解决的下一个项目是Web服务器,这实际上涉及两个不同的步骤。

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

此时,只有这个路径的顶层(/var)才会被创建。我们可以通过将p旗帜传递到我们的mkdir`命令,在一个步骤中创建整个路径。

1sudo mkdir -p /var/www/laravel

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

打开使用 sudo 特权的默认服务器封锁配置文件:

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

安装时,此文件将有一些解释性评论,但基本结构将是这样的:

 1server {
 2        listen 80 default_server;
 3        listen [::]:80 default_server ipv6only=on;
 4
 5        root /usr/share/nginx/html;
 6        index index.html index.htm;
 7
 8        server_name localhost;
 9
10        location / {
11                try_files $uri $uri/ =404;
12        }
13}

这为我们将进行的变化提供了良好的基础。

首先我们需要改变的是文件根的位置. Laravel 将安装在我们创建的 /var/www/laravel 目录中。

然而,用于驱动应用程序的基本文件被保存在一个名为公共的子目录中,这就是我们将设置我们的文档根的地方,此外,我们还会告诉 Nginx在请求目录位置时,在搜索其HTML对象之前服务任何index.php文件:

 1server {
 2    listen 80 default_server;
 3    listen [::]:80 default_server ipv6only=on;
 4
 5    root /var/www/laravel/public;
 6    index index.php index.html index.htm;
 7
 8    server_name localhost;
 9
10    location / {
11            try_files $uri $uri/ =404;
12    }
13}

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

我们还需要修改 Nginx 将处理请求的方式。这是通过试_files指令进行的。我们希望它先尝试将请求作为一个文件。如果它无法找到一个正确的名称的文件,它应该尝试为匹配请求的目录提供默认索引文件。如果不这样做,它应该将请求传递到index.php文件作为查询参数。

上面描述的变化可以这样实现:

 1server {
 2        listen 80 default_server;
 3        listen [::]:80 default_server ipv6only=on;
 4
 5        root /var/www/laravel/public;
 6        index index.php index.html index.htm;
 7
 8        server_name server_domain_or_IP;
 9
10        location / {
11                try_files $uri $uri/ /index.php?$query_string;
12        }
13}

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

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

然后我们将设置SCRIPT_FILENAME参数,以便PHP能够正确地找到所要求的文件。

 1server {
 2    listen 80 default_server;
 3    listen [::]:80 default_server ipv6only=on;
 4
 5    root /var/www/laravel/public;
 6    index index.php index.html index.htm;
 7
 8    server_name server_domain_or_IP;
 9
10    location / {
11        try_files $uri $uri/ /index.php?$query_string;
12    }
13
14    location ~ \.php$ {
15        try_files $uri /index.php =404;
16        fastcgi_split_path_info ^(.+\.php)(/.+)$;
17        fastcgi_pass unix:/var/run/php5-fpm.sock;
18        fastcgi_index index.php;
19        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
20        include fastcgi_params;
21    }
22}

保存并关闭文件,当你完成。

由于我们修改了已启用的默认服务器封锁文件,我们只需要重新启动 Nginx,以便收集我们的配置更改:

1sudo service nginx restart

创建 Swap 文件(可选)

在我们开始安装 Composer 和 Laravel 之前,在您的服务器上启用一些交换可能是一个好主意,以便构建完成正确。

交换空间将允许操作系统暂时将数据从内存移动到磁盘,当内存中的信息量超过可用的物理内存空间。

我们可以很容易地设置一些交换空间,以便我们的操作系统在需要时将其中一些 shuffle 到磁盘上。

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

1sudo fallocate -l 1G /swapfile

我们可以通过键入将其格式化为交换空间:

1sudo mkswap /swapfile

最后,我们可以启用此空间,以便内核通过键入开始使用它:

1sudo swapon /swapfile

系统只会使用此空间直到下一次重新启动,但服务器可能超过可用的内存的唯一时间是在构建过程中,所以这不应该是一个问题。

安装 Composer 和 Laravel

现在,我们终于准备好安装 Composer 和 Laravel 了,我们会先安装 Composer 然后使用此工具来处理 Laravel 安装。

移动到您有写入权限的目录(如您的主目录),然后从 Composer 项目下载和运行安装程序脚本:

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

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

我们希望在一个全球可访问的位置安装它. 此外,我们希望更改名称为composer(没有文件扩展)。

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

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

请记住,我们想将 Laravel 安装到 /var/www/laravel 目录中。 要安装最新版本的 Laravel,您可以输入:

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

在本文写作时,最新的版本是 4.2. 如果未来的项目更改阻止了此安装程序的正确完成,您可以强迫我们在本指南中使用的版本,而不是输入:

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

现在,所有的文件都安装在我们的 /var/www/laravel 目录中,但它们完全由我们的 root 帐户拥有。

我们可以通过键入以下方式将Laravel目录结构的群组所有权授予Web组:

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

接下来,我们可以更改 /var/www/laravel/app/storage 目录的权限,以允许 Web 组编写权限。

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

您现在已经完全安装了Laravel并准备好去,您可以通过访问您的服务器的域名或IP地址在您的Web浏览器中查看默认定位页面:

1http://server_domain_or_IP

Laravel default landing page

现在你有你需要开始使用Laravel框架构建应用程序的一切。

结论

Laravel 是一个相当灵活的框架,它包含许多工具,可以帮助您以结构化的方式构建应用程序。

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

Published At
Categories with 技术
comments powered by Disqus