宝塔网站切换PHP版本与安装扩展

宝塔允许服务器同时安装多个PHP版本,但“安装了PHP 8.x”不等于所有网站已经使用它。本文分开处理站点运行版本、该版本扩展以及命令行PHP。前置站点创建步骤见宝塔面板创建网站与数据库教程。已有正式业务先在测试副本验证程序、主题和插件兼容性,不能直接跨大版本切换。

先记录当前版本与回退条件

  • 记录目标域名、当前PHP分支、需要的扩展、配置参数及计划任务使用的PHP路径。
  • 从程序官方说明核对支持的PHP分支;新环境不选已停止安全维护的旧版本来迁就过期安装包。
  • 确认有可恢复的代码与数据副本,安排维护时间;切换运行时不等于升级程序本身。
  • 保留原PHP版本及配置,先不卸载,便于在兼容失败时切回。

安装目标PHP,再为站点选择它

中文站点设置中的PHP入口和版本选择框,PHP-74仅为历史位置示例
站点设置中的PHP位置示例:①版本选择框;②左侧PHP入口。图中PHP-74为历史示例值,具体面板版本未标注,请勿照选。按程序要求选择已安装分支,操作后重新核对,并验证Web实际版本与业务功能。
  1. 在“软件商店→运行环境”找到PHP,选择程序支持的目标分支及安装方式,等待任务明确完成。
  2. 到“已安装”列表打开该PHP的设置,核对其服务状态和当前版本;不同分支各自管理扩展与配置。
  3. 进入“网站→目标站点”,打开站点设置中的“PHP”,选择已安装的目标版本;如界面出现“切换”按钮,核对目标版本后点击。等待面板给出操作结果,重新打开该设置核对当前值,再按后文验证Web实际版本。
  4. 不要选择“纯静态”来处理PHP报错。纯静态意味着不通过PHP执行,含源代码和凭据的文件不能这样对外发布。

给正确的PHP分支安装扩展

PHP 8.3中文管理界面的安装扩展入口、扩展列表和右侧操作按钮
先核对左上角的PHP分支,再进入“安装扩展”,找到程序所需扩展及右侧操作。本图显示PHP 8.3管理界面的字段位置,不代表已为你的服务器完成安装。

程序报告缺少mysqli、curl、mbstring、gd、zip等时,在软件商店打开“当前站点所选PHP版本”的设置,进入安装扩展界面,按程序实际要求逐项安装。安装到另一个并未被站点使用的PHP版本不会解决问题。查看任务结果及服务状态,必要时按面板提供的服务管理入口重载该PHP,不同时重启全部环境。

不要因为旧程序调用已经移除的mysql_*函数,就把安装mysqli当成代码无需修改的保证。不同扩展API和不同PHP大版本可能有兼容变更,应修正程序或采用经过验证的支持分支。来源不明的二进制扩展和“万能修复脚本”不进入正式环境。

网站与命令行分别验证

Web端通过程序的站点健康或受限的临时检测文件确认PHP版本与所需扩展;检测结束移除文件,不长期公开phpinfo。命令行使用php -v只能说明默认CLI版本。站点切换通常不会自动修改所有cron、队列或脚本的PHP路径,定时任务应显式使用所需分支的实际可执行文件。

检查项 通过标准
前台与后台 首页和管理入口正常,无500或源码下载;登录在有效HTTPS下完成。
业务功能 表单、上传、数据库、邮件或队列等实际依赖可用,不能只看首页。
扩展与参数 Web端实际加载所需扩展,上传/内存等参数来自当前分支。
计划任务 以预期PHP分支运行,退出状态与日志正常,无连续报错。

切换后报错的回退顺序

先保存完整错误和时间,在站点PHP设置切回原分支,核对原扩展和配置仍可用,再复测业务。如果在切换期间程序还执行了数据库结构升级,仅切回PHP可能不够,需要按程序支持的恢复方案处理,不能盲目覆盖新数据。排查期间不要卸载原PHP,也不要顺手把系统默认CLI改成另一版本影响其他站点。