宝塔面板 PHP 版本过低,导致网站被攻击
宝塔面板PHP版本太低网站被黑?三招升级修复漏洞
网站忽然被挂马、数据库被删、首页被篡改……排查下来,十有八九是因为PHP版本过旧。
很多老项目还用PHP 5.6、7.0,这些版本早已停止安全更新,攻击者随便一个公开漏洞就能拿下权限。
本文用最直白的方式,教你安全升级宝塔面板上的PHP版本,堵住安全缺口。
为什么低版本PHP容易成为靶子
PHP官方对所有主流分支(5.x、7.0、7.1等)都终止了安全支持。
这意味着新发现的漏洞不再有补丁。
攻击者利用网上公开的PoC(漏洞验证代码),直接通过HTTP请求就能执行任意代码。
比如ThinkPHP 5.0的远程命令执行漏洞,在PHP 5.6环境下几乎百发百中。升级到受支持的高版本(如7.4、8.0、8.1)是当下最有效的防御手段之一。
升级前的准备——别让网站直接挂掉
- 备份网站与数据库:进入宝塔面板 → 左侧“网站” → 找到对应站点 → 点击“备份”。数据库则在“数据库”页面同样操作备份。这一步是为了万一升级后出现兼容问题,可以快速回滚。
- 查看当前PHP版本:在宝塔面板左侧“软件商店” → “已安装” → 找到PHP,会显示版本号。记下当前版本。
- 确认程序兼容性:如果你的网站用 WordPress、Discuz!、ThinkPHP 等框架,去官方文档查一下它们支持的最低PHP版本。一般PHP 7.4兼容90%的旧程序,PHP 8.0以上个别函数废弃,需额外注意。
核心步骤:安装新版本并切换到网站
第一步:安装新PHP版本
- 进入宝塔面板 → 左侧“软件商店” → “运行环境”分类。
- 找到你需要的高版本(推荐 PHP 7.4 或 PHP 8.1),点击“安装”。
- 安装方式选“极速安装”,等待3-5分钟。安装完成后,右侧会显示“已安装”。
第二步:为新版本安装必要扩展
点击新PHP版本右侧的“设置” → “安装扩展”。必装扩展: fileinfo、opcache、redis(如果使用Redis)、exif(图片处理)。
大部分CMS都依赖这些扩展,缺失会导致功能异常。
第三步:切换网站使用的PHP版本
- 回到“网站”页面 → 点击对应网站域名后的“设置”按钮。
- 在弹出窗口的“PHP版本”下拉框中,选择刚刚安装的新版本(如PHP-7.4)。
- 点击“保存”。这一步即刻生效,不需要重启服务器。
避坑指南:升级后最常遇到的三个问题
问题1:网站白页或500错误
原因:旧代码使用了PHP 7.0以下才支持的函数(如mysql_connect、ereg)。
解决:
- 开启错误显示:在网站设置 → “PHP版本”页面的配置文件中,将
display_errors = Off改为On,重启PHP后刷新页面即可看到具体报错。 - 根据报错修改代码:比如把
mysql_connect改为mysqli_connect,或使用兼容库。 - 如果代码太老无法修改,暂时切换回旧版本,另找时间重写。
问题2:页面文字乱码或编码错误
原因:PHP 7.4+对mb_string扩展要求更严格。
解决:在php配置文件中启用mbstring扩展(软件商店 → PHP设置 → 扩展 → 勾选mbstring并保存)。
问题3:Session无法正常使用
原因:PHP 7.4改变了Session存储机制。
解决:检查php.ini中session.save_path目录是否存在且有写权限。宝塔默认路径为/tmp,若不存在则手动创建并赋予777权限。
效果验证:确定升级成功且安全
- 查看PHP信息:新建一个站点文件
info.php,内容为,浏览器访问该文件,顶部显示版本号为你新安装的版本。 - 测试核心功能:登录网站后台、提交表单、上传图片、查看文章,确保所有功能正常。
- 检查安全漏洞:用在线扫描工具(如VirusTotal、WPScan)扫描网站,确认常见CVE漏洞已消失。
- 删除旧版本(可选):在软件商店 → 已安装 → 找到旧版PHP,点击“卸载”。保持一个备用版本(比如同时保留7.4和8.1)是更稳妥的做法。
最后提醒: 如果你正在处理宝塔面板PHP版本过低导致的网站被攻击问题,优先按上述步骤升级到7.4或8.1。
升级后若遇到暂时无法解决的兼容性错误,可以先切换回旧版本,但一定要尽快联系开发者或引入安全补丁。
代码老旧不是长久之计,安全升级才是根本出路。