ubuntu 22.04 默认仅提供 php 8.1,安装 php 8.0 必须添加 ppa:ondrej/php 源,再安装 php8.0 及扩展、用 update-alternatives 切换 cli 默认版本,并按 web 服务器类型单独配置 apache 模块或 php8.0-fpm 服务。

Ubuntu 22.04 默认只提供 PHP 8.1,官方源中不包含 PHP 8.0。想降级到 8.0,不能直接卸载重装,必须通过第三方 PPA 添加支持、共存安装,再切换默认版本——否则会破坏系统依赖或导致 Web 服务异常。
添加 ondrej/php 源并安装 PHP 8.0
Ubuntu 官方仓库已移除 PHP 8.0,必须使用长期维护的 ppa:ondrej/php(该源兼容 22.04,且支持多版本并存):
- 先安装基础工具:sudo apt install -y software-properties-common
- 添加源并更新:sudo add-apt-repository ppa:ondrej/php && sudo apt update
- 安装 PHP 8.0 及常用扩展:sudo apt install -y php8.0 php8.0-cli php8.0-fpm php8.0-mysql php8.0-mbstring php8.0-xml php8.0-zip php8.0-opcache php8.0-curl php8.0-gd
注意:若用 Apache,还需额外安装 libapache2-mod-php8.0 并禁用旧模块(如 sudo a2dismod php8.1 && sudo a2enmod php8.0);若用 Nginx,确保 fastcgi_pass 指向 /run/php/php8.0-fpm.sock。
切换 CLI 默认版本
安装完后,php -v 仍显示 8.1,因为 /usr/bin/php 是符号链接,指向当前默认版本。需用 update-alternatives 管理:
- 注册 PHP 8.0 CLI:sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.0 80
- 注册 PHP 8.1 CLI(如有):sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.1 81
- 交互式切换:sudo update-alternatives --config php,选编号 80
执行 php -v 应输出 PHP 8.0.x,确认 CLI 已生效。
配置 Web 服务使用 PHP 8.0
CLI 切换不影响 Web 服务器——Apache 和 Nginx 需单独配置:
- Apache:启用模块后重启:sudo systemctl restart apache2
- Nginx + FPM:确保 php8.0-fpm 已启动:sudo systemctl enable --now php8.0-fpm,再检查 socket 权限(/run/php/php8.0-fpm.sock 归属 www-data,权限 660)
- 验证 Web 环境:建 info.php(内容 ),浏览器访问,确认显示 “PHP Version 8.0.x”
清理与验证
不建议彻底卸载 PHP 8.1(尤其系统组件依赖它),保留更安全。只需确认项目运行正常:
- 检查扩展是否加载:php -m | grep -E "(mysql|mbstring|opcache)"
- 运行 Composer 检查:composer diagnose,确认无 PHP 版本不匹配报错
- 测试 Laravel 或其他框架启动逻辑,重点验证废弃函数(如 create_function)、类型声明兼容性
如果后续需回切,重复 update-alternatives --config php 即可,无需重装。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











