# PHP 版本、扩展与内存限制

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

更新日期：2026-09-16

规范地址：https://stock.iftalking.com/guides/php-upgrade/

## 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 运行环境](https://stock.iftalking.com/tutorial-media/wordpress-site-health.png)

*图示说明：WordPress 官方 Playground 演示环境实拍（2026-09-16，界面显示版本 7.1）。用于对照后台操作，不是服务商控制面板或正式业务数据。*

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

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

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

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

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

![在运行环境中选择 PHP，图中旧版本仅作界面示例](https://stock.iftalking.com/tutorial-media/bt-software.png)

*图示说明：宝塔官方文档公开界面截图（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_filesize`、`post_max_size`、Web 服务请求体限制和磁盘空间。`post_max_size` 通常需要大于单文件限制并留出表单开销。WordPress 的内存常量不能突破底层环境允许的所有限制。

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

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

临时 phpinfo/探针页面检查完就移除，避免公开系统路径和环境信息。继续阅读[WordPress 排错](https://stock.iftalking.com/guides/wordpress-errors/)与[性能优化](https://stock.iftalking.com/guides/wordpress-performance/)。


## 完成后检查

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

## 参考资料

- [PHP 官方文档](https://www.php.net/supported-versions.php)
- [PHP 官方文档](https://www.php.net/manual/en/ini.core.php)
- [WordPress 开发与运维手册](https://developer.wordpress.org/playground/)
- [宝塔官方文档](https://docs.bt.cn/getting-started/install-basic-environment)
