必须添加 Ondřej Surý 的 ppa:ondrej/php PPA 源,因 Ubuntu 官方仓库严格锁定 PHP 主版本(如 22.04 仅提供 8.1、24.04 默认 8.3),不包含 8.3/8.4/8.5 等新版,直接 apt install 会报“Unable to locate package”。

在 Ubuntu 上安装官方仓库不提供的新版 PHP(如 8.3、8.4、8.5),必须添加由 Ondřej Surý 维护的权威第三方 PPA 源。这个源长期稳定、多版本共存、支持安全更新,是 Ubuntu 用户安装非默认 PHP 版本的事实标准方案。
添加 PPA 源并更新包索引
Ubuntu 官方仓库对 PHP 主版本严格锁定(例如 22.04 只提供 8.1,24.04 默认为 8.3),不包含旧版或新版主版本。直接运行 apt install php8.4 会提示 “Unable to locate package”。解决办法是引入社区维护的 PPA:
- 先安装基础工具:
sudo apt install -y software-properties-common ca-certificates lsb-release apt-transport-https - 添加 PPA:
sudo add-apt-repository ppa:ondrej/php - 刷新软件包列表:
sudo apt update
安装指定 PHP 版本及常用扩展
添加源后,系统就能识别 php8.3、php8.4、php8.5 等独立包名。安装时需明确指定版本号和所需模块:
- 安装 PHP 8.4 CLI 和核心模块:
sudo apt install -y php8.4 php8.4-cli php8.4-common - 连接数据库必需:
php8.4-mysql(支持 mysqli/pdo_mysql) - Web 开发常用:
php8.4-fpm php8.4-mbstring php8.4-curl php8.4-xml php8.4-zip php8.4-gd php8.4-bcmath - 验证安装:
php8.4 -v查看版本;php8.4 -m | grep -E 'mysqli|pdo'确认数据库扩展已加载
切换默认 CLI 版本(可选)
若系统已装多个 PHP 版本(如 8.1 + 8.4),可通过 update-alternatives 设置命令行默认调用的 php:
立即学习“PHP免费学习笔记(深入)”;
- 注册各版本:
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.1 81 --slave /usr/bin/php-config php-config /usr/bin/php8.1-config --slave /usr/bin/phpize phpize /usr/bin/php8.1ize(同理注册 8.4) - 交互式切换:
sudo update-alternatives --config php - 注意:此操作只影响终端
php命令,不影响 Web 服务器(Apache/Nginx 需单独配置使用哪个libapache2-mod-php8.4或php8.4-fpm)
注意事项与常见问题
该 PPA 不属于 Ubuntu 官方支持范围,但更新及时、兼容性好。使用时需留意:
- PPA 不参与 Ubuntu LTS 的生命周期保障,但实际维护非常活跃(2026 年仍在同步发布 8.5.5 等维护版本)
- 不要尝试从旧发行版(如 20.04)手动复制 deb 包安装,极易引发依赖冲突或破坏
apt upgrade - 安装后若
php -v仍显示旧版本,请检查是否遗漏update-alternatives配置,或终端缓存未刷新(可执行hash -r) - Web 服务集成需额外步骤:Apache 需启用对应模块(
sudo a2enmod php8.4),Nginx 则必须配合php8.4-fpm并正确配置fastcgi_pass



















