Ubuntu环境下Apache无法加载PHP、解析PHP文件问题求助
Apache无法加载PHP文件的解决方法
我之前在Ubuntu环境里碰到过一模一样的问题,结合你给出的环境信息,给你整理了两个可行的解决方案,你可以根据自己的需求选择:
方案一:使用Apache原生PHP模块(简单直接)
你的/etc/apache2/mods-available目录里没有php7.0.conf和php7.0.load,说明根本没安装Apache对应的PHP模块包,这是最直接的原因。
- 更新软件源并安装模块包
执行以下命令:
sudo apt-get update sudo apt-get install libapache2-mod-php7.0
安装完成后,系统会自动启用这个模块,不过保险起见你也可以手动执行:
sudo a2enmod php7.0
- 重启Apache服务
sudo systemctl restart apache2
方案二:通过php-fpm配合proxy_fcgi模块(适合与Nginx共存场景)
你已经手动启用了proxy相关模块,接下来需要补全php-fpm的配置,让Apache把PHP请求转发给php-fpm处理:
- 安装php7.0-fpm(你当前只有CLI版本,缺少FPM服务)
sudo apt-get install php7.0-fpm
- 配置Apache与php-fpm的转发规则
创建一个专门的配置文件:
sudo nano /etc/apache2/conf-available/php7.0-fpm.conf
在文件里添加以下内容:
<FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost/" </FilesMatch>
保存并退出编辑器(按Ctrl+O,回车,再Ctrl+X)。
- 启用这个配置并重启服务
sudo a2enconf php7.0-fpm sudo systemctl start php7.0-fpm sudo systemctl enable php7.0-fpm sudo systemctl restart apache2
额外注意事项
- 因为你同时部署了Nginx和Apache,默认两者都监听80端口会冲突,建议修改其中一个的监听端口。比如修改Apache的话,编辑
/etc/apache2/ports.conf,把Listen 80改成Listen 8080,然后对应虚拟主机配置里的<VirtualHost *:8080>,测试时用http://你的服务器IP:8080访问。 - 测试是否生效:在Apache的网站根目录(比如
/var/www/html)创建一个测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/phpinfo.php
访问这个文件,如果能正常显示PHP信息,就说明配置成功了。
内容的提问来源于stack exchange,提问作者sa Kevin
相关产品推荐
相关产品推荐

