You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 14+PHP7环境已装cURL仍报Call to undefined function curl_init()求助

解决Ubuntu 14下PHP 7中curl_init()未定义的问题

嘿,我碰到过好多次这种情况,你的问题大概率是PHP的cURL扩展没正确加载到当前运行的PHP环境里。先给你拆解下你的排查信息,再一步步解决:

首先看你locate curl.so的输出,有两个PHP版本的cURL扩展:

  • /usr/lib/php/20151012/curl.so —— 这个是PHP 7.0对应的扩展目录
  • /usr/lib/php/20170718/curl.so —— 这个是PHP 7.2及以上版本的

而locate curl.ini显示的都是PHP 7.0的配置文件,说明你装的是PHP 7.0的cURL扩展,但可能没正确启用或者服务没重启。

下面按步骤排查:

1. 确认当前运行的PHP版本

先搞清楚你的Web服务(Apache/FPM)和CLI用的是不是同一个PHP版本:

  • 命令行运行:php -v 查看CLI版本
  • 在网页里创建一个phpinfo.php文件,内容是<?php phpinfo(); ?>,访问它查看Web环境的PHP版本

如果两个版本不一致,那问题就出在这——你装的cURL扩展是给PHP7.0的,但Web服务用的是更高版本的PHP,自然找不到扩展。这种情况你需要给对应版本的PHP安装cURL扩展,比如如果Web用的是PHP7.2,就运行sudo apt-get install php7.2-curl。

2. 检查cURL扩展是否已启用

针对CLI环境

运行命令:

php -m | grep curl

如果输出curl,说明CLI的cURL已经启用;如果没输出,那CLI的配置有问题。

针对Web环境

看刚才的phpinfo.php页面,搜索curl关键词,如果能找到cURL的模块信息,说明Web环境已启用;找不到的话继续下一步。

3. 确保配置文件生效并重启服务

不管是Apache还是FPM,修改配置后必须重启服务才会生效:

  • 如果用Apache:
    sudo service apache2 restart
    
  • 如果用PHP-FPM:
    sudo service php7.0-fpm restart
    

另外,你可以打开/etc/php/7.0/apache2/conf.d/20-curl.ini(对应Web环境的配置)检查内容,确保里面的extension=curl.so没有被注释(前面没有分号;):

; configuration for php curl module
; priority=20
extension=curl.so

如果有注释,去掉分号后再重启服务。

4. 重新安装cURL扩展(如果以上都无效)

有时候扩展安装过程中可能出问题,重新安装一次试试:

sudo apt-get purge php7.0-curl
sudo apt-get install php7.0-curl

安装完成后记得重启Web服务或FPM。

5. 检查是否被禁用

最后排查下php.ini里有没有把curl函数禁用:
打开Web环境对应的php.ini(比如/etc/php/7.0/apache2/php.ini),搜索disable_functions,看里面有没有curl_init,如果有就把它删掉,然后重启服务。


内容的提问来源于stack exchange,提问作者vijaybir singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:27:31