Vultr Ubuntu 22.04服务器部署LEMP时安装PHP 8.0遇PPA仓库无Release文件错误的解决求助
错误原因分析
你遇到的E: The repository 'https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy Release' does not have a Release file错误,核心原因是:ondrej/php的PPA已经不再为Ubuntu 22.04(Jammy Jellyfish)提供PHP 8.0的软件包。
PHP 8.0在2023年11月已经结束了官方安全支持,而ondrej的PPA只维护当前处于官方支持周期内的PHP版本(Ubuntu 22.04默认适配的PHP版本是8.1,属于长期支持版本)。当你尝试添加该PPA并更新APT缓存时,服务器上已经没有对应Jammy版本的PHP 8.0包资源,因此返回404错误,导致APT无法找到合法的Release文件。
另外从你提供的命令输出里也能看到PPA的明确提示:Only Supported Versions of PHP for Supported Ubuntu Releases are provided,这进一步验证了这一点。
可行的解决建议
方案一:升级到受支持的PHP版本(推荐)
既然PHP 8.0已经停止安全更新,生产环境强烈建议使用Ubuntu 22.04默认仓库中提供的PHP 8.1(长期支持版本),步骤如下:
- 先移除有问题的PPA:
sudo add-apt-repository --remove ppa:ondrej/php sudo rm -rf /etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list sudo rm -rf /etc/apt/trusted.gpg.d/ondrej-ubuntu-php.gpg
- 更新APT缓存并安装PHP 8.1及常用扩展:
sudo apt update sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip
- 安装完成后,配置Nginx与PHP-FPM配合即可完成LEMP环境搭建。
方案二:强制安装PHP 8.0(不推荐,仅测试/非生产环境使用)
如果因为特殊需求必须使用PHP 8.0,可以通过deb.sury.org的官方源尝试安装(注意:该源可能仍提供EOL版本,但无安全更新):
- 导入源的GPG密钥:
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/suryphp-archive-keyring.gpg
- 添加deb.sury.org的源到APT:
echo "deb [signed-by=/usr/share/keyrings/suryphp-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
- 更新缓存并安装PHP 8.0:
sudo apt update sudo apt install -y php8.0 php8.0-fpm php8.0-mysql php8.0-cli php8.0-common php8.0-curl php8.0-gd php8.0-mbstring php8.0-xml php8.0-zip
⚠️ 再次提醒:PHP 8.0已无安全更新,生产环境使用会带来严重的安全风险。
额外排查:Locale问题
如果上述方案仍有问题,可以检查系统Locale是否为UTF-8(PPA提示过非UTF-8环境会导致add-apt-repository异常),可以先设置临时Locale再操作:
LC_ALL=C.UTF-8 sudo add-apt-repository ppa:ondrej/php
内容的提问来源于stack exchange,提问作者Guntar

