CentOS LAMP版本兼容性问题及解决方案
libphp7.so,若误加载旧版libphp5.so会导致PHP页面无法解析)。boost库,若系统版本过低会导致编译失败)。Require指令替代旧版Allow,PHP 8.x禁用部分旧函数),沿用旧配置会导致服务异常。Apache 2.4 + MariaDB 10.5 + PHP 7.4(适用于WordPress、Drupal等传统应用)或Apache 2.4 + MySQL 8.0 + PHP 8.1(适用于需要新特性的现代应用),兼顾兼容性与性能。yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install php php-mysqlnd php-gd php-xml php-mbstring
mod_php(Apache模块),确保加载libphp7.so模块(在httpd.conf中添加LoadModule php7_module modules/libphp7.so)。PHP-FPM(推荐,提升性能),需安装php-fpm包,配置/etc/httpd/conf.d/php-fpm.conf文件,添加ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost/var/www/html/,并设置PHP-FPM监听socket。setenforce 0(测试后恢复setenforce 1),并通过chcon -R -t httpd_sys_rw_content_t /var/www/html修改目录安全上下文;开放必要端口:firewall-cmd --permanent --add-service=http --add-service=https --add-service=mysql,然后firewall-cmd --reload。apr-devel、apr-util-devel,MySQL编译需boost-devel,PHP编译需libxml2-devel、oniguruma-devel(用于mbstring扩展)。可通过yum provides */头文件名查找缺失包。--enable-so(动态模块支持)、--with-mpm=event(高性能事件模型);MySQL 8.0需指定-DWITH_BOOST=/usr/include/boost177(boost库路径);PHP 8.2需添加--with-apxs2=/usr/local/apache2/bin/apxs(Apache模块编译路径)。info.php文件(<?php phpinfo(); ?>),访问http://服务器IP/info.php,确认PHP版本、Apache模块加载情况。