推荐优先使用dnf安装php-fpm与nginx:一、更新系统,启用epel+crb,安装php php-fpm及常用扩展并验证;二、配置/etc/php-fpm.d/www.conf,确保listen socket路径、nginx用户权限及进程用户一致;三、添加nginx官方仓库安装并配置fastcgi_pass指向该socket;四、创建info.php验证显示“fpm/fastcgi”。

RockyLinux 上部署 PHP-FPM 并与 Nginx 联调,推荐优先使用系统包管理器(dnf)安装,稳定、省时、兼容性好。源码编译适合有特殊版本或扩展需求的场景,但日常生产环境不必要。
一、安装 PHP-FPM 及核心扩展
确保系统已更新并启用必要仓库:
- 运行
sudo dnf update -y - 安装 EPEL 和 CRB(RockyLinux 9/10 必需):
sudo dnf install epel-release -y && sudo dnf config-manager --set-enabled crb
安装 PHP 主程序和常用扩展(含 FPM):
sudo dnf install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip php-opcache -y- 验证安装:
php -v和php-fpm -v应正常输出版本;php -m | grep -E "fpm|mysql|mbstring"确认模块加载
二、配置 PHP-FPM 服务
主配置文件路径为 /etc/php-fpm.d/www.conf,关键项需检查或修改:
- 监听方式:默认使用 Unix socket,确认
listen = /run/php-fpm/www.sock - 权限设置:确保
listen.owner = nginx、listen.group = nginx(RHEL 系统一律用nginx用户,非www-data) - 进程用户:
user = nginx、group = nginx(保持与 Nginx 进程一致,避免权限拒绝) - 可选优化:调整
pm = dynamic、pm.max_children等参数以适配服务器资源
启动并设为开机自启:
sudo systemctl enable php-fpm && sudo systemctl start php-fpm-
sudo systemctl status php-fpm查看是否为 active (running) - 检查 socket 文件是否存在:
ls -l /run/php-fpm/www.sock,权限应为srw-rw----. 1 nginx nginx
三、Nginx 安装与 PHP 转发配置
推荐使用官方稳定版仓库安装(比默认 baseos 更新版且持续维护):
- 添加 Nginx 官方 repo:
sudo tee /etc/yum.repos.d/nginx.repo [nginx-stable]<br>name=nginx stable repo<br>baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/<br>gpgcheck=1<br>enabled=1<br>gpgkey=https://nginx.org/keys/nginx_signing.key<br>module_hotfixes=true<br>EOF
- 安装:
sudo dnf install nginx -y - 启动:
sudo systemctl enable nginx && sudo systemctl start nginx
配置站点支持 PHP:
- 编辑
/etc/nginx/conf.d/default.conf或新建配置文件 - 在
server块中添加或确认以下location ~ \.php$区块:
root /usr/share/nginx/html;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
- 重载配置:
sudo nginx -t && sudo systemctl reload nginx
四、验证联调是否成功
在 Web 根目录(如 /usr/share/nginx/html/)创建测试文件:
echo '<?php phpinfo(); ?>' | sudo tee /usr/share/nginx/html/info.php- 访问
http://你的服务器IP/info.php - 页面应完整显示 PHP 信息,且顶部 “Server API” 显示为 FPM/FastCGI
- 若报错 502 Bad Gateway,重点检查:
php-fpm是否运行、socket 路径是否匹配、nginx和php-fpm用户组是否一致、SELinux 是否拦截(临时禁用测试:sudo setenforce 0)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











