Ubuntu 16.04 下安装 php7.2-curl 的完整解决方案

12次阅读

Ubuntu 16.04 下安装 php7.2-curl 的完整解决方案

本文详解在 ubuntu 16.04 中成功安装 php7.2-curl 扩展的方法,涵盖 ppa 源配置、更新同步、依赖处理及常见失败原因排查,确保 php curl 功能正常启用。

ubuntu 16.04 系统中,官方仓库默认仅提供 PHP 7.0,而 php7.2-curl 属于第三方维护的较新版本扩展,必须通过可靠的外部源(如 Ondřej Surý 的 PPA)获取。尽管你已运行 sudo add-apt-repository ppa:ondrej/php 和 sudo apt-get update,但报错 E: Unable to locate package php7.2-curl 通常表明:PPA 未正确启用、APT 缓存未刷新彻底,或系统架构/源列表存在冲突

首先确认 PPA 已真实写入源配置:

ls /etc/apt/sources.list.d/ | grep ondrej # 应看到类似:ondrej-ubuntu-php-xenial.list

若无输出,请手动添加并验证:

sudo apt install -y software-properties-common sudo add-apt-repository -y ppa:ondrej/php sudo apt update

⚠️ 注意:add-apt-repository 在某些最小化安装的 Ubuntu 16.04 中可能未预装,需先安装 software-properties-common。

接着检查是否能查到目标包:

立即学习PHP免费学习笔记(深入)”;

apt list --installed | grep php7.2 apt-cache search php7.2-curl # 正常应返回:php7.2-curl/xenial,now 7.2.34-8+ubuntu16.04.1+deb.sury.org+1 amd64 [installed]

若仍不可见,请检查 APT 源是否启用了 xenial 对应的 main 组件(该 PPA 依赖 main 通道)。打开 /etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list,确保内容形如:

deb http://ppa.launchpad.net/ondrej/php/ubuntu xenial main

而非 deb http://ppa.launchpad.net/ondrej/php/ubuntu xenial **universe**(错误组件会导致包不可见)。

确认无误后执行安装:

sudo apt install -y php7.2-curl sudo systemctl restart apache2    # 若使用 Apache # 或 sudo systemctl restart php7.2-fpm # 若使用 nginx + FPM

安装完成后,验证扩展是否生效:

php -m | grep curl # 应输出:curl  php -i | grep "curl.enabled" # 应显示:curl.enabled => 1 => 1

✅ 补充说明:

  • Ubuntu 16.04 已于 2021 年 4 月结束标准支持,建议生产环境尽快升级至受支持版本(如 20.04 LTS),以获得安全更新与兼容性保障;
  • 若系统中存在多个 PHP 版本(如同时安装了 php7.0 和 php7.2),请确保 update-alternatives 或 phpupdate 配置指向正确的二进制路径,避免 php -v 显示版本与 apt install 目标不一致;
  • 极少数情况下,apt update 可能因网络或镜像延迟未同步最新包索引,可尝试更换 PPA 镜像源(如将 http://ppa.launchpad.net 替换为 https://launchpad.proxy.ustclug.org)提升稳定性。

至此,php7.2-curl 扩展即可正常使用,所有依赖的 libcurl4 和 php-common 包将由 APT 自动解析并安装。

text=ZqhQzanResources