本教程适用于以下操作系统版本
- CentOS 8
- CentOS 7.6
- CentOS 7
- CentOS 6.4
- CentOS 6.3
- CentOS 6.2
本页内容
- 先决条件
- 开始之前
- 安装 Nginx Web 服务器
- 安装 PHP 和 PHP-FPM
- 为 Nginx 创建索引页
- 配置 Nginx 以使用 PHP-FPM
- 测试 Nginx 的 PHP-FPM 支持
- 总结
Nginx 是一款免费、开源且全球最强大的 Web 服务器之一。它主要用于高负载和高流量的网站。Nginx 以稳定性、配置简单和资源消耗低而著称。你可以将 Nginx 用作 Web 服务器和反向代理。
FPM 是 FastCGI Process Manager(FastCGI 进程管理器)的缩写,是 PHP 的一种替代 FastCGI 实现,用于高流量网站。它通常与 Web 服务器配合使用来提供 PHP 页面。与其他运行 PHP 的方式相比,PHP-FPM 占用的内存和 CPU 更少。在多用户 PHP 环境中,PHP-FPM 比传统的基于 CGI 的方法更快。PHP-FPM 还允许同时运行多个版本的 PHP。
本教程将教我们如何在 CentOS 8 上安装支持 PHP-FPM 的 Nginx。
先决条件
- 一台运行 CentOS 8 的服务器。
- 服务器上已配置 root 密码。
开始之前
默认情况下,CentOS 8 服务器中启用了 SELinux。因此你需要先将其禁用。
你可以通过编辑 /etc/selinux/config 文件来实现:
nano /etc/selinux/config
进行如下修改:
SELINUX=disabled
保存并关闭文件。然后重启服务器使更改生效。
安装 Nginx Web 服务器
首先,使用以下命令安装 Nginx Web 服务器:
yum install nginx -y
Nginx 安装完成后,使用以下命令启动 Nginx 服务并设置为开机自启:
systemctl start nginx
systemctl enable nginx
完成后,你可以进入下一步。
安装 PHP 和 PHP-FPM
接下来,运行以下命令安装 PHP 和 PHP-FPM:
yum install php php-cli php-common php-fpm -y
所有软件包安装完成后,启动 PHP-FPM 服务并设置为系统重启后自动启动:
systemctl start php-fpm
systemctl enable php-fpm
你还可以使用以下命令查看 PHP-FPM 服务的状态:
systemctl status php-fpm
你应该会看到如下输出:
? php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago
Main PID: 1475 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 6 (limit: 5060)
Memory: 28.5M
CGroup: /system.slice/php-fpm.service
??1475 php-fpm: master process (/etc/php-fpm.conf)
??1478 php-fpm: pool www
??1479 php-fpm: pool www
??1480 php-fpm: pool www
??1481 php-fpm: pool www
??1482 php-fpm: pool www
Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager...
Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.
为 Nginx 创建索引页
接下来,你需要创建一个示例 info.php 页面,用于测试 Nginx 是否使用了 PHP-FPM。
你可以在 Nginx 默认文档根目录下创建 info.php,如下所示:
nano /var/www/html/info.php
添加以下行:
<?php
phpinfo();
?>
完成后保存并关闭文件。
接下来,将 info.php 文件的所有权更改为 nginx:
chown -R nginx: /var/www/html/info.php/
配置 Nginx 以使用 PHP-FPM
接下来,你需要创建一个 Nginx 虚拟主机配置文件并启用 PHP-FPM 支持。
你可以使用以下命令创建该文件:
nano /etc/nginx/conf.d/example.conf
添加以下行:
server {
listen 80;
server_name example.com;
root /var/www/html/;
index info.php;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
}
保存并关闭文件。然后,使用以下命令检查 Nginx 是否存在语法错误:
nginx -t
接下来,启用 Nginx 虚拟主机文件并重启 Nginx 服务以应用配置:
systemctl restart nginx
测试 Nginx 的 PHP-FPM 支持
现在,打开你的 Web 浏览器并输入 URL http://example.com 。你将跳转到如下页面:


在上述页面中,你应该能看到 PHP-FPM 已随 Nginx Web 服务器一同加载。
总结
恭喜!你已成功在 CentOS 8 服务器上安装了支持 PHP-FPM 的 Nginx。现在你可以使用 PHP-FPM 来托管多个使用不同 PHP 版本的网站。