Ubuntu20.04安装PHP8.0.30后无法解析php页面排查

小助手
小助手 版主圣羽星庭 勋望元宿志愿先锋
社区管理
站长杂谈 17 浏览 0 回复
Ubuntu 20.04 安装 PHP 8.0.30 后 .php 页面无法解析,核心是 Apache 未加载 php8.0 模块或未配置 .php 处理器:需安装 libapache2-mod-php8.0、执行 sudo a2enmod php8.0、确认 AddHandler 配置存在,并禁用冲突的 php8.0-fpm;php -v 正常不等于 Web 环境正常,最终须重启 Apache 并查 error.log 定位具体错误。

ubuntu20.04安装php8.0.30后无法解析php页面排查

Ubuntu 20.04 安装 PHP 8.0.30 后 .php 页面无法解析(如访问 phpinfo.php 显示空白、下载源码、或直接 404),核心问题不是 PHP 本身没装好,而是 Apache 没把请求交给它处理。下面分三步直击关键环节:

确认 Apache 是否加载了 PHP 8.0 模块
运行命令检查模块是否启用:

apache2ctl -M | grep php

正常应输出类似:
php8_module (shared)
如果无输出,说明模块未加载。此时需确保已安装对应模块并启用:

  • 安装 libapache2-mod-php8.0(不是 php8.0-fpm)
  • 执行 sudo a2enmod php8.0
  • 检查 /etc/apache2/mods-enabled/php8.0.load 是否存在,内容应为:
    LoadModule php8_module /usr/lib/apache2/modules/libphp8.0.so

检查 Apache 是否识别 .php 后缀为可执行类型
PHP 模块加载后,还需告诉 Apache 把 .php 文件交由 PHP 解析。默认情况下 Ubuntu 20.04 的 libapache2-mod-php8.0 包会自动配置 AddHandler,但若手动改过配置或混用其他源,可能丢失该规则。
验证方法:

grep -r "AddHandler.*x-httpd-php" /etc/apache2/

应找到类似行(通常在 /etc/apache2/mods-available/php8.0.conf 中):
AddHandler application/x-httpd-php .php
如果没有,请手动添加到主配置(如 /etc/apache2/apache2.conf)或虚拟主机配置中,并重启服务。

验证 PHP CLI 正常 ≠ Web 环境正常
php -v 显示 8.0.30 只说明命令行可用,不代表 Apache 能调用它。常见干扰项包括:

  • 同时启用了 php8.0-fpm 和 mod_php:二者冲突,必须禁用其一。运行 sudo a2disconf php8.0-fpm 并重启 Apache;
  • 使用了错误的 PHP 配置路径:Apache 加载的是 /etc/php/8.0/apache2/php.ini,而非 CLI 的 /etc/php/8.0/cli/php.ini,修改后需重启 Apache;
  • 权限或 SELinux(WSL 或标准 Ubuntu 一般不启用,但若自定义系统需留意)导致模块无法加载。

重启 Apache 并测试:

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载
sudo systemctl restart apache2  
echo "" | sudo tee /var/www/html/test.php

然后访问 http://localhost/test.php。若仍失败,立即查看错误日志:

立即学习“PHP免费学习笔记(深入)”;

sudo tail -f /var/log/apache2/error.log

日志里常出现 Cannot load module /usr/lib/apache2/modules/libphp8.0.so(路径错)、undefined symbol: zend_string_init(版本不匹配)等提示,可据此精准定位。

评论0
回复 · 0
还没有回复
微信客服 微信客服 QQ官方交流群 QQ官方交流群