Ubuntu 18.04环境下如何配置PHP 7.2与Apache 2协同运行?
解决Apache无法解析PHP代码并配置mod_php(DSO)的正确步骤
1. 移除冲突的Nginx
误装的Nginx可能与Apache存在端口或服务冲突,先彻底卸载:
sudo apt remove --purge nginx nginx-full nginx-core sudo apt autoremove sudo apt autoclean
2. 安装适配当前PHP版本的mod_php模块
你的PHP版本是7.2,需安装对应Apache模块及必要依赖:
sudo apt install libapache2-mod-php7.2 php7.2-mbstring php7.2-xml php7.2-apcu php7.2-gd php7.2-zip php7.2-curl php7.2-sqlite3
3. 切换Apache的MPM为Prefork
mod_php(DSO模式)仅兼容prefork MPM,不能与event/worker模式共存,需切换:
# 禁用非兼容的MPM sudo a2dismod mpm_event mpm_worker # 启用prefork MPM sudo a2enmod mpm_prefork
4. 启用mod_php7.2并重启Apache
sudo a2enmod php7.2 sudo systemctl restart apache2
5. 验证PHP解析功能
在网站根目录(默认/var/www/html)创建测试文件:
<?php phpinfo(); ?>
通过服务器IP访问该文件,若能正常显示PHP信息页面,说明解析配置生效。
关于mod_php(DSO)的说明
mod_php是嵌入Apache进程的PHP模块,属于DSO(动态共享对象)模式,无需额外FastCGI进程通信,因此CPU占用更低,这也是WebPageTest文档推荐它的原因。你之前的方案失效,核心问题是版本不匹配(误用了php7.0/php5的命令)或MPM模式冲突。
内容的提问来源于stack exchange,提问作者John Little
相关产品推荐
相关产品推荐

