虽然PHP做业务后端逐步在被Go等语言替代,但使用PHP做简单业务封装和数据组装时,开发效率依然是比较高效的。使用Nginx运行PHP的常用方法是FastCGI模块。PHP-FPM (FastCGI进程管理器)极大地提高了你的Nginx+PHP环境的性能,所以这对高负载的网站很有用。本教程介绍在CentOS8上安装Nginx并配置PHP-FPM的步骤,以便后续参考。
依赖环境
- CentOS8
- 拥有sudo权限
- 更新dnf
1 | sudo dnf update |
Step1 安装Nginx
Nginx在仓库中已经存在,可以使用dnf工具直接安装:
1 | sudo dnf install nginx |
启动Nginx服务,同时让Nginx服务在系统启动时自动启动。
1 | sudo systemctl enable nginx |
检查nginx是否已启动
1 | sudo systemctl status nginx |
如果您的系统上启用了防火墙,请确保打开HTTP端口以供远程系统访问。HTTP为80端口,HTTPS,为443端口。
1 | sudo firewall-cmd --zone=public --permanent --add-service=http |
在浏览器使用ip访问主机器,看是否能访问到nginx的默认页面了呢?
Step2 安装PHP和PHP-FPM
安装php和php-fpm
1 | sudo dnf install php php-fpm |
检查php是否已正常安装
1 | php -v |
启动php-fpm服务,同时让php-fpm服务在系统启动时自动启动。
1 | sudo systemctl enable php-fpm |
检查php-fpm是否已启动
1 | sudo systemctl status php-fpm |
Step3 配置PHP-FPM
本文配置nginx和php-fpm通信,我们使用unix套接字,打php-fpm的配置文件:
1 | sudo vim /etc/php-fpm.d/www.conf |
修改以下内容
1 | ; 进程所属用户和组,默认为apache,这里改为nginx |
重启PHP-FPM
1 | sudo systemctl restart php-fpm |
Step4 配置Nginx
在Nginx中为您的域创建一个服务器块,并将其配置为使用PHP-FPM来处理PHP文件。创建一个服务器块文件:
1 | sudo vim /etc/nginx/conf.d/example.com.conf |
其中example.com替换成你的域名。下面添加了套接字文件的代理配置。并将所有PHP脚本配置为使用PHP-FPM处理程序执行。
1 | server { |
重启nginx
1 | sudo systemctl restart nginx |
Step5 测试
在/usr/share/nginx/html
目录下新建一个phpinfo.php文件:
1 | echo "<?php phpinfo(); ?>" /usr/share/nginx/html/info.php |
在浏览器访问地址http://www.example.com/info.php
,成功配置会展示下图php信息。