You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu升级后PHP文件未被Apache解析,直接显示源码原因排查

Ubuntu 18.04升级到22.04后Apache不解析PHP的原因及解决办法

出现这种问题,基本是升级过程中Apache的PHP相关配置被重置、模块未正确启用导致的,以下是常见原因和对应的解决步骤:

1. PHP模块未启用

升级后Apache不会自动启用新版本的PHP模块,需要手动操作:

  • 启用PHP 8.1模块:sudo a2enmod php8.1
  • 重启Apache生效:sudo systemctl restart apache2

2. Apache的PHP处理规则丢失

升级可能重置了Apache的配置,导致.php文件的处理规则被清除:

  • 打开PHP模块配置文件检查:sudo nano /etc/apache2/mods-available/php8.1.conf
  • 确保文件中包含以下规则,没有的话手动添加:
    <FilesMatch ".+\.ph(ar|p|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    
  • 保存后重启Apache。

3. PHP-FPM配置异常(若使用FPM模式)

如果之前用PHP-FPM运行PHP,升级后可能出现服务未启动或Apache代理配置丢失:

  • 检查PHP-FPM状态:sudo systemctl status php8.1-fpm
  • 若未启动,启动并设置开机自启:
    sudo systemctl start php8.1-fpm
    sudo systemctl enable php8.1-fpm
    
  • 启用Apache代理模块:sudo a2enmod proxy proxy_fcgi
  • 检查站点配置文件(比如/etc/apache2/sites-available/your-site.conf),确保包含FPM代理规则:
    <FilesMatch ".+\.ph(ar|p|tml)$">
        SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
    </FilesMatch>
    
  • 重启Apache。

4. 站点配置文件被覆盖

升级时系统可能会备份原有站点配置(后缀为.dpkg-old),并使用默认配置替换,而默认配置没有PHP解析规则:

  • 查看是否有备份文件:ls /etc/apache2/sites-available/*.dpkg-old
  • 如果存在,将备份中的PHP相关配置复制到当前站点.conf文件中,或者直接恢复备份(注意适配新环境),之后重启Apache。

5. MIME类型配置错误

Apache的MIME类型配置可能丢失了PHP的关联:

  • 打开MIME配置文件:sudo nano /etc/apache2/mods-available/mime.conf
  • 确认存在AddType application/x-httpd-php .php,没有则添加,保存后重启Apache。

内容的提问来源于stack exchange,提问作者stighy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:12:17