BWH Compass

PHP 版本、扩展与内存限制

一个服务器可能同时安装多个 PHP 版本。命令行 PHP 与网站实际使用的 PHP-FPM 不一定相同,修改前先确认对象。

BWH Compass 编辑整理更新于 约 4 分钟阅读

1. 先确认网站实际使用的 PHP#

命令行 php -v 与网站 PHP-FPM 可能是不同版本。宝塔可以给不同站点选择不同 PHP;手工 Nginx 则通常通过 socket 指向某个 FPM 服务。升级前记录站点对应版本、扩展和关键 php.ini 设置。

bash
php -v
php --ini
php -m
ls /run/php/

这些命令主要查看命令行环境与本地 socket,不能代替网站运行时核对。WordPress 可在“工具 → 站点健康 → 信息”中查看实际 Web 环境。

通过站点健康信息核对 Web 运行环境
WordPress 官方 Playground 演示环境实拍(2026-09-16,界面显示版本 7.1)。用于对照后台操作,不是服务商控制面板或正式业务数据。

2. 在测试副本确认兼容性#

先备份文件与数据库,在测试站升级 PHP,测试主题、插件、支付/邮件接口和后台任务。选择 PHP 官方仍受支持、应用也兼容的版本,不能只根据面板中还提供旧版就继续使用。

重点检查已弃用函数、扩展缺失、编码处理和数据库驱动。测试站不发送真实通知,不处理真实支付回调。发现错误先更新对应主题或插件,不能用隐藏错误来代替修复。

3. 宝塔安装新版本并切换单个站点#

在软件商店安装所需 PHP 版本及对应扩展。确认安装完成后,进入该站点的 PHP 设置选择新版本,先只切一个测试站,不必立刻卸载旧运行时。

在运行环境中选择 PHP,图中旧版本仅作界面示例
宝塔官方文档公开界面截图(2026-09-16 核对)。图中的域名、IP、旧版软件列表和日期仅作界面示例,安装版本按正文与应用要求选择。

切换后从未登录浏览器访问首页,再验证后台登录、图片上传、表单和计划任务。CLI 定时任务可能仍调用旧 php,需要使用明确的新版本路径。

4. 手工环境核对 FPM 与代理配置#

新 FPM 服务安装后,确认实际 socket 和权限,修改站点的 fastcgi_pass 指向新服务。先检查 Nginx 配置,再 reload;保留旧服务与配置以便恢复。

bash
sudo nginx -t
systemctl list-units --type=service 'php*-fpm.service'
sudo systemctl reload nginx

出现 502 时,检查 socket 路径、FPM 是否运行和权限,不能只因为 CLI php -v 正确就排除 PHP 问题。

5. 内存与上传限制要成组检查#

memory_limit 限制单个 PHP 请求可用内存,不是整台服务器总内存。FPM 并发进程数也要与实例容量匹配,不能在 1 GiB 机器上把每个进程上限和并发都设得很大。

上传还涉及 upload_max_filesizepost_max_size、Web 服务请求体限制和磁盘空间。post_max_size 通常需要大于单文件限制并留出表单开销。WordPress 的内存常量不能突破底层环境允许的所有限制。

6. 上线后留一段回退窗口#

观察 PHP 错误日志、响应时间和内存,覆盖一次真实业务周期后再卸载不需要的旧版本。回退时恢复原 socket、配置和扩展;数据库或插件升级引起的数据变化需要单独处理。

临时 phpinfo/探针页面检查完就移除,避免公开系统路径和环境信息。继续阅读WordPress 排错性能优化

完成后检查

验证网站实际运行的版本,而不是只看 php -v 的输出。

官方资料与相关入口