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

为何始终触发Uncaught Error: Call to undefined function curl_init()错误?

这种情况我碰到过好多次,大概率是配置细节没注意到或者环境不一致导致的,咱们一步步来排查解决:

1. 先确认你修改的是正确的php.ini文件

很多系统里会存在多个php.ini副本——比如Web服务器(Apache/Nginx)用的和CLI命令行用的可能不是同一个。你可以通过两种方式验证:

  • 网页端:新建一个info.php文件,内容写:
    <?php phpinfo(); ?>
    
    访问这个页面后,搜索“Loaded Configuration File”,看看显示的路径是不是你修改的那个php.ini。
  • 命令行:执行php --ini,同样看“Loaded Configuration File”对应的路径。
    如果发现路径不对,去修改正确的那个php.ini文件。
2. 检查php.ini里的curl配置写法是否正确

你写的extension:php_curl是错误的!正确的配置格式应该是:

# Linux系统通常这么写
extension=curl

# Windows系统需要指定dll文件
extension=php_curl.dll

注意是等号不是冒号!另外还要确认extension_dir配置的路径是否正确——phpinfo里能找到这个项,确保它指向的目录里确实存在curl扩展文件(Linux是curl.so,Windows是php_curl.dll)。

3. 修改配置后必须重启服务才能生效

很多人容易忽略这一步!修改php.ini后,一定要重启对应的服务:

  • Apache:sudo systemctl restart apache2(Linux)或者在系统服务管理器里重启Apache(Windows)
  • Nginx+PHP-FPM:需要同时重启PHP-FPM和Nginx,命令是sudo systemctl restart php-fpm和sudo systemctl restart nginx
  • 如果是用CLI运行PHP,关闭当前终端重新打开即可。
4. 验证curl扩展是否真的加载成功

做完上面的步骤后,再验证一下:

  • 命令行执行php -m,看输出列表里有没有curl这一项。
  • 网页端打开之前的info.php,搜索“curl”,如果能看到完整的curl配置块,说明加载成功了。
5. Linux系统注意权限和SELinux问题

如果是Linux服务器,还要检查扩展文件的权限:

# 替换成你的extension_dir路径
sudo chmod 644 /usr/lib/php/X.X/curl.so

另外,SELinux可能会拦截PHP读取扩展文件,你可以临时关闭测试:sudo setenforce 0,如果关闭后错误消失,就需要配置SELinux允许PHP访问该扩展文件。

6. 确认PHP版本和扩展版本匹配

有时候安装的php-curl扩展和当前运行的PHP版本不兼容——比如你装的是php7.4-curl,但实际运行的是PHP8.0。解决方法:

# 先查看当前PHP版本
php -v
# 安装对应版本的curl扩展(比如PHP8.1就是php8.1-curl)
sudo apt install phpX.X-curl

(把X.X替换成你的PHP版本号)

如果以上步骤都试过还是没解决,你可以把php -v、php --ini、php -m的输出贴出来,我再帮你进一步分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:54:55