0


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

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

简介

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

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

安装后端组件

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

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

sudoapt-get update
sudoapt-getinstall nginx php5-fpm php5-cli php5-mcrypt git

这将安装 Nginx 作为我们的 Web 服务器,以及运行 Laravel 代码所需的 PHP 工具。我们还安装了

git

,因为

composer

工具(PHP 的依赖管理器,我们将使用它来安装 Laravel)将使用它来拉取软件包。

修改 PHP 配置

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

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

sudonano /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

服务,以实施我们所做的更改:

sudoservice php5-fpm restart

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

配置 Nginx 和 Web 根目录

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

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

/var/www/laravel

的目录中。

此时,此路径的顶层目录 (

/var

) 已经创建。我们可以通过向我们的

mkdir

命令传递

-p

标志来一次性创建整个路径。这会指示实用程序创建构造给定路径所需的任何必要的父路径元素:

sudomkdir-p /var/www/laravel

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

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

sudonano /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,以便我们的配置更改生效:

sudoservice 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 文档。

标签: linux apache mysql

本文转载自: https://blog.csdn.net/rubys007/article/details/141284466
版权归原作者 白如意i 所有, 如有侵权,请联系我们删除。

“如何在 Ubuntu 14.04 上使用 Nginx Web 服务器安装 Laravel”的评论:

还没有评论