介绍
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框架构建应用程序的一切。
结论
Laravel 是一个相当灵活的框架,它包含许多工具,可以帮助您以结构化的方式构建应用程序。
要了解如何使用 Laravel 构建应用程序,请参阅 Laravel 文档。