必须通过Remi仓库安装PHP 8.1 RPM包,先装EPEL和yum-utils,再安装remi-release-7.rpm以注册正确GPG密钥与元数据,启用remi-php81模块后卸载旧PHP,安装php、php-fpm及mysqlnd、opcache等核心扩展,配置PHP-FPM使用socket监听并设为www-data用户,最后验证扩展加载与进程权限。

在CentOS 7 + Nginx环境下部署PHP 8.1扩展开发所需的生产环境,必须绕过系统默认的PHP 5.4源,通过Remi仓库安装完整、签名、带systemd集成的PHP 8.1 RPM包,否则将因版本过旧、无安全更新、缺少OPcache或PDO等关键扩展而无法运行现代PHP框架。
添加Remi仓库并启用PHP 8.1模块
先安装EPEL和yum-utils:yum install -y epel-release yum-utils
下载并安装Remi仓库发行包:rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
这一步不能跳过或替换为其他镜像源——【只有remi-release-7.rpm能正确注册CentOS 7兼容的GPG密钥与仓库元数据】。若使用非官方地址或手动编辑.repo文件,后续yum-config-manager将报错“no such file or directory”。
启用PHP 8.1模块:yum-config-manager --enable remi-php81
卸载旧PHP并安装核心扩展
检查当前是否残留PHP 5.x:rpm -qa | grep php
若输出包含php54-*、php-common-5.4.*等,必须彻底清除:yum remove -y php* php54*
安装PHP 8.1运行时及必需扩展:yum install -y php php-fpm php-cli php-common php-mysqlnd php-opcache php-gd php-curl php-mbstring php-xml php-zip php-bcmath php-soap php-xmlrpc
注意:php-mysqlnd是MySQL原生驱动,比php-mysql快且支持PDO::MYSQL_ATTR_SSL_*等安全参数;不装它会导致Laravel等框架数据库连接失败。
配置PHP-FPM服务并验证
第一步:修改/www.conf监听方式
编辑/etc/php-fpm.d/www.conf,将listen = 127.0.0.1:9000改为listen = /run/php/php-fpm.sock,并取消listen.owner和listen.group前的分号,设为www-data(或nginx用户)
第二步:创建socket目录并赋权
mkdir -p /run/php && chown www-data:www-data /run/php && chmod 0755 /run/php
第三步:启动服务并设开机自启
systemctl start php-fpm && systemctl enable php-fpm
第四步:验证扩展加载状态
php -m | grep -E "opcache|mysqlnd|mbstring|xml" —— 每项都应有输出,缺一则需重新检查安装命令是否漏掉对应包名
第五步:检查FPM进程是否以www-data身份运行
ps aux | grep php-fpm | grep -v grep | head -2 —— 主进程与子进程的USER列必须为www-data,否则Nginx将因权限拒绝连接socket
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











