如何在 CentOS 7 上使用 Nginx 和 PHP-FPM 7.1 安装 Laravel 5.x如何在 CentOS 7 上使用 Nginx 和 PHP-FPM 7.1 安装 Laravel 5.x如何在 CentOS 7 上使用 Nginx 和 PHP-FPM 7.1 安装 Laravel 5.x如何在 CentOS 7 上使用 Nginx 和 PHP-FPM 7.1 安装 Laravel 5.x
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 7 上使用 Nginx 和 PHP-FPM 7.1 安装 Laravel 5.x

在此页

  1. 第 1 步 - 安装 EPEL 存储库
  2. 第 2 步 - 安装 Nginx
  3. 第 3 步 - 安装和配置 PHP-FPM 7.1
  4. 第 4 步 - 安装 MariaDB 服务器
  5. 第 5 步 - 安装 PHP Composer
  6. 第 6 步 - 为 Laravel 配置 Nginx 虚拟主机
  7. 第 7 步 - 安装 Laravel
  8. 第 8 步 - 配置 SELinux
  9. 第 9 步 - 测试 Laravel
  10. 参考资料

Laravel 是一个遵循 MVC(模型-视图-控制器)设计模式的开源 PHP 框架。它由 Taylor Otwell 于 2011 年创建,旨在提供 CodeIgniter (CI) 框架的高级替代方案。 2011 年,Laravel 项目发布了版本 1 和 2,今年发布了 5.4 版本,其中包含许多改进,例如命令行 (CLI) 支持命名为 artisan、对更多数据库类型的内置支持和改进的路由。

在本教程中,我将向您展示如何在 CentOS 7 系统上安装带有 Nginx Web 服务器、PHP-FPM 7.1 和 MariaDB 的 Laravel Web Framework。我将逐步向您展示如何在 CentOS 7 服务器上的 LEMP 堆栈下安装和配置 Laravel。

本教程也适用于 Ubuntu 上的 Laravel。

先决条件:

  • CentOS 7 服务器。
  • 根权限。

第 1 步 - 安装 EPEL 存储库

EPEL 或 Extra Package for Enterprise Linux 是一个额外的软件包存储库,它提供 CentOS 官方存储库中未包含的有用软件包。它可以安装在基于 RPM 的 Linux 发行版上,例如 CentOS 和 Fedora。

在本教程中,我们需要 EPEL 存储库来安装 Nginx,因为官方 CentOS 存储库中不存在 Nginx 包。使用下面的 yum 命令安装 EPEL 存储库。

yum -y install epel-release

EPEL 存储库已安装。

第 2 步 - 安装 Nginx

在本教程中,我们将在 LEMP 堆栈下运行 Laravel。 Nginx 是 LEMP 堆栈的 Web 服务器部分,可以从 EPEL 存储库安装。

使用 yum 从 EPEL 存储库安装 Nginx 1.10。

yum -y install nginx

安装完成后,启动 Nginx 并将其添加为开机自启动。

systemctl start nginx
systemctl enable nginx

Nginx 在端口 80 上运行,使用下面的 netstat 命令检查它。

netstat -plntu

如果您收到 Command not found 结果,请安装 net-tools 包,如下所示。

yum -y install net-tools

第 3 步 - 安装和配置 PHP-FPM 7.1

Laravel 可以安装在 PHP 版本 >= 5.6.4 的服务器上。在本教程中,我们将使用 Laravel 支持的最新版本 PHP 7.1。

CentOS 基础存储库中不存在 PHP 7.1,我们需要从名为 webtatic 的第三方存储库安装它。

使用此 rpm 命令安装 webtatic 存储库。

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

现在我们可以使用一个 yum 命令安装 PHP-FPM 以及 Laravel 所需的所有扩展。

yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip

我们的CentOS 7系统已经安装了PHP 7.1。

接下来,通过使用 vim 编辑配置文件 php.ini 来配置 PHP。

vim /etc/php.ini

取消注释下面的行并将值更改为 0。

cgi.fix_pathinfo=0

保存文件并退出编辑器。

现在编辑 PHP-FPM 文件 www.conf。

vim /etc/php-fpm.d/www.conf

PHP-FPM 将在用户和组 nginx 下运行,将下面两行的值更改为 nginx。

user = nginx
group = nginx

PHP-FPM 将在套接字文件下运行,而不是使用服务器端口。将监听值改为路径/run/php-fpm/php-fpm.sock,如下图。

listen = /run/php-fpm/php-fpm.sock

套接字文件所有者将是 nginx 用户,权限模式为 660。取消注释并更改所有值,如下所示:

listen.owner = nginx
listen.group = nginx
listen.mode  = 0660

对于环境变量,取消注释这些行并设置如下所示的值。

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

保存文件并退出 vim,然后启动 PHP-FPM 并使其在引导时运行。

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM 正在socket 文件下运行,使用下面的命令检查它。

netstat -pl | grep php-fpm.sock

PHP和PHP-FPM 7.1的安装配置已经完成。

第 4 步 - 安装 MariaDB 服务器

您可以为 Laravel 项目使用 MySQL 或 PostgreSQL。在本教程中,我将使用 MariaDB 数据库服务器。它在 CentOS 存储库中可用。使用下面的 yum 命令安装 MariaDB-server。

yum -y install mariadb mariadb-server

安装完成后,启动 mariadb 并使其在引导时启动。

systemctl start mariadb
systemctl enable mariadb

MariaDB 已启动并在端口 3306 上运行,使用 netstat 命令检查它。

netstat -plntu

接下来,使用下面的 mylsq_secure_installation 命令为 MariaDB 配置 root 密码。

mysql_secure_installation

输入您的 mariadb root 密码,删除匿名用户等。

Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

MariaDB 的安装和配置已经完成。

第 5 步 - 安装 PHP Composer

PHP composer 是 PHP 编程语言的包管理器。它创建于 2011 年,灵感来自 Node.js npm 和 Rubys bundler 安装程序。使用 curl 命令安装作曲家。

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

安装完成后,尝试使用 composer 命令,您将看到如下结果。

composer

在 CentOS 7 上安装了 PHP Composer。

第 6 步 - 为 Laravel 配置 Nginx 虚拟主机

在这一步中,我们将为 Laravel 项目创建 nginx 虚拟主机配置。我们需要为此 Laravel 安装定义 Web 根目录,我将使用 /var/www/laravel 目录作为 Web 根目录。

使用下面的 mkdir 命令创建它:

mkdir -p /var/www/laravel

接下来进入nginx目录,在conf.d目录下新建一个虚拟主机配置文件laravel.conf。

cd /etc/nginx
vim conf.d/laravel.conf

将以下配置粘贴到文件中:

server {
        listen 80;
        listen [::]:80 ipv6only=on;

    # Log files for Debugging
        access_log /var/log/nginx/laravel-access.log;
        error_log /var/log/nginx/laravel-error.log;

    # Webroot Directory for Laravel project
        root /var/www/laravel/public;
        index index.php index.html index.htm;

        # Your Domain Name
        server_name laravel.hakase-labs.co;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

    # PHP-FPM Configuration Nginx
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

保存文件并退出 vim。

测试 nginx 配置并确保没有错误,然后重新启动 nginx 服务。

nginx -t
systemctl restart nginx

Laravel 的 nginx 虚拟主机配置已经完成。

第 7 步 - 安装 Laravel

在安装 Laravel 之前,我们需要在服务器上安装 unzip。

yum -y install unzip

现在进入laravel web根目录/var/www/laravel。

cd /var/www/laravel

Laravel 提供了两种在服务端安装框架的方式。我们可以使用 laravel 安装器安装 Laravel,也可以使用 PHP composer 安装。在本教程中,我将通过使用 composer 命令创建一个新项目来安装 Laravel。

运行下面的命令来安装 Laravel。

composer create-project laravel/laravel .

等待 Laravel 安装完成。这可能要花点时间。

安装完成后,将Laravel web根目录的属主修改为nginx用户,并将存储目录的权限修改为755,命令如下。

chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage

Laravel 安装已经完成。

第 8 步 - 配置 SELinux

在本教程中,Laravel 将在 SELinux Enforcing 模式下运行。要检查 SELinux 状态,请运行以下命令。

sestatus

结果是 SELinux 在 Enforcing 模式下运行。

接下来,我们需要安装CentOS 7的SELinux管理工具。

在服务器上安装 policycoreutils-python。

yum -y install policycoreutils-python

现在我们需要更改 Laravel 目录的上下文,然后使用 restorecon 命令应用更改。运行 SELinux 管理命令,如下所示。

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'

Laravel 的 SELinux 配置已完成。

第 9 步 - 测试 Laravel

打开您的网络浏览器并输入您服务器的 Laravel URL。我们已经在 Nginx 虚拟主机文件中为 Laravel 定义了域名。我的是 laravel.hakase-labs.co。

当你访问该域名时,你会看到 Laravel 主页。

Laravel 在 CentOS 7 上安装 Nginx、PHP-FPM7 和 MariaDB 已经成功。

参考

  • https://laravel.com/docs/5.4/installation

©2015-2025 艾丽卡 support@alaica.com