php 升级失败主因是源配置与运行时共存逻辑未处理:ubuntu/debian 需添加 ppa、安装指定版本扩展、用 update-alternatives 切换默认命令;macos 须修正 path 和 apache 模块路径;centos/rhel 需启用 epel+remi 源并启用对应 module;web 服务需确认 php.ini 路径、重启对应 fpm 服务并同步扩展配置。
PHP 版本过低(比如 7.2 或更早)时,直接用包管理器(如 apt、brew、dnf)升级到 8.1+ 往往失败——默认源不提供新版,硬装还可能破坏系统依赖。这不是“命令没输对”,而是源配置和运行时共存逻辑没处理好。
Ubuntu/Debian 上 apt 升级 PHP 到 8.2 的关键三步
官方仓库的 apt 默认只带 PHP 7.4(Ubuntu 20.04)或 8.1(22.04),要装 8.2/8.3 必须换源:
- 添加 Ondřej Surý 的 PPA:
sudo add-apt-repository ppa:ondrej/php,然后sudo apt update - 安装指定版本(例如 PHP 8.2):
sudo apt install php8.2 php8.2-cli php8.2-mysql php8.2-curl—— 注意别只装php8.2,CLI 和扩展得手动列全 - 切换默认
php命令指向:sudo update-alternatives --config php,选中 8.2 对应编号;否则php -v仍显示旧版
漏掉第三步是最多人卡住的地方:包装好了,但 php 命令还是老版本。
macOS 用 brew 升级 PHP 容易踩的两个坑
brew install php 默认装最新稳定版(目前是 8.3),但实际运行时可能不生效:
立即学习“PHP免费学习笔记(深入)”;