Nginx+PHP7环境搭建教程(CentOS系统)
我之前写过一篇文章介绍如何在 Linux 下搭建一个 PHP 环境(点击查看),当时使用的是 Apache 来提供 web 服务。我们也可以改用 Nginx + PHP 的组合(工作原理是 Nginx 将 php 相关的请求转到 PHP 环境中处理)。因为 Nginx 有着超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,下面也是如何搭建一个 Nginx + PHP 环境。
1,安装 Nginx
具体步骤参考我之前写的文章:Nginx的安装配置教程(CentOS系统)2,安装 PHP
(1)这里我们以安装 PHP7.3 为例,首先执行如下命令安装 EPEL 源及源管理工具:
yum install epel-release yum-utils
(2)接着执行如下命令安装 REMI 源:
Remi 软件源:主要提供最新版的 PHP 软件包和其他一些 PHP 扩展工具包,它是针对 Fedora 和 RHEL 系分支变体 (包括:RHEL、CentOS、Oracle Linux 等等) 要安装 PHP,推荐使用 Remi 软件源。Remi 对 PHP 的支持和更新都很积极,可以在第一时间获得新版本的支持。
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
(3)然后执行如下命令安装 PHP7.3 及扩展:
yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-pecl-swoole php73-php-recode php73-php-snmp php73-php-soap php73-php-xmll
(4)安装完毕后执行如下命令可以查看 PHP 版本:
php73 -v

(5)我们可以执行如下命令将 php73 链接到系统环境变量中,就可以使用 php -v 了:
(6)然后执行如下命令启动 php-fpm,并且将其设置为开机自启动:



ln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php
(6)然后执行如下命令启动 php-fpm,并且将其设置为开机自启动:
systemctl enable php73-php-fpm systemctl start php73-php-fpm
- 下面是其他几个常用命令:
systemctl restart php73-php-fpm //重启 systemctl stop php73-php-fpm //关闭 systemctl status php73-php-fpm //检查状态
3,配置 PHP
(1)编辑 php.ini 文件:
vi /etc/opt/remi/php73/php.ini
- 找到 memory_limit 一行,将其改成 512M:

- 然后将 cgi.fix_pathinfo 前面的注释(;)去掉,并将值设置为 0:

(2)因为我们运行的是 nginx 而不是 apache,编辑 www.conf 文件:
vi /etc/opt/remi/php73/php-fpm.d/www.conf
- 然后将 user 和 group 的值都改成 nginx:

4,配置 Nginx
(1)首先我们创建 nginx 用户:
groupadd nginx useradd -g nginx nginx
(2)接着编辑 nginx 配置文件:
vi /usr/local/nginx/conf/nginx.conf
(3)修改如下三处地方,修改保存后重启 Nginx 服务。
- 首先去掉 user 注解,将其值改成 nginx:

- 接着修改 location 块,追加 index.php 让 nginx 服务器默认支持 index.php 为首页:

- 最后找到 PHP 的配置部分,将其注释去掉,并将其内容改成如下配置:

location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
(4)最后测试一下,在 /usr/local/nginx/html 目录下新建一个 test.php 文件,内容如下:
<?php phpinfo();?>
(5)使用浏览器访问该页面,如果显示如下内容则说明 nginx + php 环境搭建成功:
