ubuntu升级php关键在ppa源适配、版本化扩展安装(如php8.4-mysql)及cli/apache/nginx三端独立配置,需通过ondrej/php源安装、update-alternatives切换cli、a2enmod启用apache模块、nginx配置fastcgi_pass指向对应php8.4-fpm.sock,并分层验证php -v、phpinfo()与日志。

Ubuntu升级PHP不是单纯换一个包,关键在源适配、扩展兼容和服务绑定。官方仓库版本固定,新版PHP(如8.4/8.5)必须靠第三方PPA;装完新版本后,CLI、Apache、Nginx三者默认互不关联,需分别配置;旧版扩展名(如php-mysql)在新版中已统一为php8.4-mysql格式,直接apt install php-mysql会装错版本或失败。
添加并信任Ondřej Surý PPA源
Ubuntu官方源对PHP主版本严格锁定(22.04仅含8.1,24.04默认8.3),不提供8.4/8.5等更新版本。跳过这步,apt install php8.4会报“Unable to locate package”。
- 先安装基础工具:
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
该PPA由Debian PHP维护者Ondřej Surý长期运营,支持多版本共存与安全更新,是Ubuntu用户事实标准方案。
安装指定PHP版本及对应扩展
新版PHP扩展包名带明确版本号,例如php8.4-mysql而非php-mysql。混用会导致模块加载失败或Web服务无响应。
- 安装核心与CLI:
sudo apt install -y php8.4 php8.4-cli php8.4-common - 数据库支持(必选):
sudo apt install -y php8.4-mysql(同时启用mysqli和pdo_mysql) - Web常用扩展:
sudo apt install -y php8.4-fpm php8.4-mbstring php8.4-curl php8.4-xml php8.4-zip php8.4-gd php8.4-bcmath - 验证扩展加载:
php8.4 -m | grep -E 'mysql|curl|gd'
分别配置CLI、Apache与Nginx服务
三个环境独立管理:终端php命令、Apache的libapache2-mod-php8.4、Nginx的php8.4-fpm需各自启用,不能互相替代。
-
CLI默认切换(可选):
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.4 84,再运行sudo update-alternatives --config php交互选择 -
Apache启用:
sudo a2enmod php8.4,然后重启sudo systemctl restart apache2 -
Nginx启用:确认
/etc/nginx/sites-available/your-site中fastcgi_pass指向unix:/run/php/php8.4-fpm.sock,再重启sudo systemctl restart php8.4-fpm nginx
验证版本、配置与运行时行为
只看php -v不够,要分层验证:命令行、Web服务器、实际脚本执行是否一致,避免“显示是8.4但网站跑在8.1上”的隐蔽问题。
- 终端检查:
php -v和php --ini(确认读取的是/etc/php/8.4/cli/php.ini) - Web验证:新建
/var/www/html/info.php,内容为<?php phpinfo(); ?>,浏览器访问后核对顶部“PHP Version”及“Loaded Configuration File”路径 - 错误日志排查:
sudo tail -f /var/log/apache2/error.log或/var/log/php8.4-fpm.log,关注模块加载失败或路径错误提示 - 语法兼容性测试:
php8.4 -l your-script.php检查语法是否通过(尤其注意mysql_*函数已被移除)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











