总体思路 在 CentOS 上,PHP 的兼容性主要受 系统版本、软件源、PHP 版本与扩展、以及 **Web 服务器与进程模型(mod_php 或 PHP-FPM)**影响。按“版本匹配 → 源与安装 → 集成配置 → 安全与权限 → 迁移验证”的顺序处理,可显著降低冲突与故障率。
版本与软件源匹配
安装与集成步骤
sudo yum install -y epel-release yum-utilssudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php73sudo yum install -y php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring/etc/httpd/conf.d/php.conf 中包含类似<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>fastcgi_pass 127.0.0.1:9000; 或 socket)。php -v、php -m 检查版本与扩展;systemctl restart httpd 或 systemctl restart nginx && systemctl restart php-fpm 重启服务;test.php 输出 phpinfo(); 或简单 echo php_sapi_name(); 验证解析与 SAPI 模式。常见兼容性问题与快速修复
fastcgi_pass 到 PHP-FPM。php -m 列出已启用扩展;用 sudo yum install php-<扩展名> 补齐(如 php-mysqlnd、php-gd、php-xml、php-mbstring)。php --ini 查看 Loaded Configuration File 与扫描路径;迁移时复制并重写绝对路径(如 session.save_path、date.timezone)。sestatus 查看状态;排查时可用 sudo setenforce 0 临时切为宽容模式;chcon -R -t httpd_exec_t /var/www/html/*.php,目录常见为 httpd_sys_content_t,上传目录可用 httpd_sys_rw_content_t;必要时用 ausearch/setsebool 精细调整。chown -R apache:apache /var/www/html,权限 755;上传/缓存目录 775 并归属 Web 运行用户。systemctl status php-fpm 查看状态与日志;确认监听地址/套接字、进程数与权限匹配 Web 服务器配置。迁移与验证清单
php -v、php -m,安装缺失扩展,必要时对齐 小版本。php --ini 确认目标 php.ini 路径,迁移后校正绝对路径与关键参数(upload_max_filesize、post_max_size、date.timezone、error_log、session.save_path)。