宝塔提示“PHP版本过低”是真实兼容性风险警告,因其检测到站点绑定版本低于7.2、对应php -v输出低于7.2,且代码或依赖文件(如composer.json)明确要求更高版本;校验逻辑包含读取绑定版本、执行php -v验证、扫描根目录关键文件三步,缺一即触发告警。

宝塔提示“PHP版本过低”,不是文件打不开,而是它检测到当前网站绑定的 PHP 版本低于 7.2,且你的代码或依赖(比如 composer.json、wp-includes/version.php)明确要求更高版本——这属于真实兼容性风险,不是误报。
为什么点开 PHP 文件就报这个错?
这不是浏览器或文件系统的问题,而是宝塔在请求到达前做了三层校验:
- 读取该站点配置里绑定的 PHP 版本(如
php-56或php-70) - 执行对应版本的
/www/server/php/56/bin/php -v,确认输出是否 - 扫描站点根目录下常见文件(如
composer.json的"php": "^8.1"、WordPress 的wp-includes/version.php中的$wp_version = '6.7'),判断最低支持版本
只要其中任一条件命中,哪怕你只是访问一个空的 index.php,宝塔也会拦截并弹出警告。
怎么快速确认是不是真过低?
别只信面板右上角显示的“PHP版本”,要验证三处实际生效点:
立即学习“PHP免费学习笔记(深入)”;
- 进「网站 → 设置 → PHP版本」,确认下拉选中的是已安装且状态为「运行中」的版本(比如
php-82),不是灰色禁用项 - 去「PHP管理 → PHP 8.2 → 设置 → 配置修改」,搜
php_version,确保没被.user.ini里旧配置覆盖(例如php_version=72) - SSH 执行
/www/server/php/82/bin/php -v,看输出是否真为8.2.x;再执行/www/server/php/82/bin/php -m | grep opcache,确认关键扩展已加载
切换后还是提示?重点查这三类残留
很多人点了“切换”就以为完事,结果后台持续报警。真正卡住的往往是这些隐形绑定:
-
crontab里硬编码了/usr/bin/php路径:新版 PHP 实际路径是/www/server/php/82/bin/php,老定时任务仍调用旧二进制 - 站点根目录存在
.user.ini,里面写了open_basedir=/www/wwwroot/old-site或php_version=74,Nginx 会优先读它,无视面板设置 - 宝塔插件(如 phpMyAdmin、OneAuth)或其它子站仍绑定着旧 PHP 版本,导致全局配置冲突,执行
grep -r "php-version.*74" /www/server/panel/vhost/可查出所有引用
最麻烦的不是装新 PHP,而是旧代码里藏着 mysql_connect() 这种已被移除的函数,或者 Composer 依赖声明了 "php": ">=8.1" 却绑在 php-74 上跑——这种不匹配不会立刻报错,但会在你访问后台、安装插件时突然崩掉。



















