本文详解在 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。
接着检查是否能查到目标包:
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 **uni

确认无误后执行安装:
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
✅ 补充说明:
至此,php7.2-curl 扩展即可正常使用,所有依赖的 libcurl4 和 php-common 包将由 APT 自动解析并安装。