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

Laravel是一个开源的PHP框架,遵循MVC(Model-View-Controller)设计模式。 它是由Taylor Otwell于2011年创建的,旨在提供CodeIgniter(CI)框架的高级替代方案。 2011年,Laravel项目发布了第1版和第2版,今年5.4版已经推出了诸如Command-Line(CLI)支持命名为“artisan”的许多改进,内置支持更多的数据库类型和改进的路由。

在本教程中,我将向您介绍如何在CentOS 7系统上安装带有Nginx Web服务器,PHP-FPM 7.1和M​​ariaDB的Laravel Web Framework。 我将逐步介绍如何在CentOS 7服务器上的LEMP下安装和配置Laravel。

先决条件:

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

第1步 - 安装EPEL存储库

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

在本教程中,我们需要Nginx安装的EPEL存储库,因为官方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

如果您得到“命令未找到”,请安装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将在套接字文件下运行。 将'listen'值更改为路径“/ 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在套接字文件下运行,请使用以下命令检查。

netstat -pl | grep php-fpm.sock

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

第4步 - 安装MariaDB服务器

您可以使用MySQL或PostgreSQL作为您的Laravel项目。 我将使用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的根密码。

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”和Ruby的“bundler”安装程序。 使用curl命令安装Composer者。

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

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

composer

PHP Composer安装在CentOS 7上。

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

在此步骤中,我们将为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之前,我们需要在服务器上安装解压缩。

yum -y install unzip

现在去laravel web根目录'/ var / www / laravel'。

cd /var/www/laravel

Laravel为服务器上的框架安装提供了两种方式。 我们可以用Laravel安装程序安装Laravel,我们可以用PHPComposer安装它。 在本教程中,我将通过使用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正在“ 强制 ”模式下运行。

接下来,我们需要为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主页。

在CentOS 7上使用Nginx,PHP-FPM7和MariaDB的Laravel安装成功。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏