如何为NGINX网站添加PHP-FPM支持
如果想从Apach换到NGINX,你可能会发现一个问题,那就是如何添加对PHP快速进程管理器(PHP-FPM)的支持。PHP-FPM是一个针对PHP脚本和应用程序的FastCGI处理程序,这使得网站可以处理更高的负载。PHP-FPM比传统的基于CGI的多用户PHP环境要快得多,而且还允许使用不同版本的PHP来托管多个应用程序。
我想引导你完成安装 PHP-FPM 的过程,然后在你的 NGINX 站点中启用它。它不像Apache那样简单,但对于任何IT专家来说,它应该不是什么难题。
首先准备一个正在运行的NGINX实例和一个有sudo权限的用户。我将在我选择的Ubuntu 20.04服务器上进行演示,但是这个过程可以修改为在任何支持PHP和PHP-FPM的平台上工作。
如何安装PHP-FPM
首先我们要做的是安装PHP-FPM和一些额外的东西。登录到你的Ubuntu服务器实例,并在终端窗口中发出命令。
sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath -y
上述命令将下载并安装所有必要的依赖关系。
PHP-FPM 安装完毕后,你需要找出验证PHP版本。
php --version
然后你可以用命令检查PHP-FPM的状态。
sudo systemctl status php7.X-fpm
其中X是PHP的版本号。
如果你看到PHP-FPM没有运行(应该是),用命令启动它。
sudo systemctl start php7.X-fpm
其中X是PHP的版本号。
最后,使用命令启用PHP-FPM。
sudo systemctl enable php7.x-fpm
同样,其中X是PHP的版本号。
如何配置PHP-FPM
现在我们需要做一些配置上的修改,以便NGINX知道PHP-FPM。首先是编辑默认的 NGINX 配置文件。用命令打开该文件。
sudo nano /etc/nginx/nginx.conf
在该文件中,寻找这一行。
#server_tokens off;
取消这行,所以它看起来像:
server_tokens off;
保存并关闭该文件
接下来,我们需要编辑默认的虚拟主机配置。用命令打开该文件。
sudo nano /etc/nginx/sites-available/default
在该文件中,寻找下面的部分。
# pass PHP scripts to FastCGI server
该部分应如下所示:

简单说就是取消上图中四行前的注释(删除#字符):
保存并关闭该文件。
用命令重新启动NGINX。
sudo systemctl restart nginx
如何测试安装
用命令创建一个测试文件。
sudo nano /var/www/html/info.php
在该文件中,粘贴以下内容。
<?php
phpinfo();
?>
保存并关闭该文件。
打开网页浏览器并将其指向 http://SERVER/info.php (其中 SERVER 是主机服务器的 IP 地址)。你应该看到,在PHP信息页面的顶部,FPM/FastCGI列出了服务器API,在cgi-fcgi下,php-pm是活动的。

至此,你已经有了支持PHP-FPM的NGINX。记住,当你建立虚拟主机的配置文件时,你需要确保在这些文件中包含PHP支持。为此,你可以使用/etc/nginx/sites-available/default文件作为例子。