调用未定义的函数 curl_init() - 使用 WAMP

Posted

技术标签:

【中文标题】调用未定义的函数 curl_init() - 使用 WAMP【英文标题】:Call to undefined function curl_init() - with WAMP 【发布时间】:2012-08-18 02:01:17 【问题描述】:

我正在尝试让 cUrl 工作,但我很难过。

我在php.ini 文件中取消注释extension=php_curl.dll 并检查php_curl.dll 是否存在于extension_dir 指向的目录中。我还检查了Apache目录中的php.ini是否正确。

我已将 libcurl.dll 复制到 Windows/System32、Windows/SysWOW64 和 wamp\bin\php\php5.4.3

而且我每次都重启服务。

我仍然收到Fatal error: Call to undefined function curl_init()。当我运行phpInfo() 时,Curl 没有出现。但是当我查看 WAMP 菜单 PHP->PHP 扩展 php_curl 时确实有一个复选标记。

有什么提示吗?

编辑:

@Daniel_M:加载的ini是Apache目录下的那个,extension=php_curl.dll已经被取消注释,extension_dir确实指向php/php5.4.3/extphp_curl.dll(和libcurl.dll)所在的目录.

@ficuscr:我把libcurl.dll v.7.27.0 复制到了整个地方。我应该把它放在哪里?

一般情况下:当php_curlPHP > PHP Extensions menu 中未选中时,致命错误会出现在: SCREAM: Error suppression ignored for。选中 php_curl 时不会发生这种情况。在任何一种情况下,致命错误消息都是相同的。线索?

【问题讨论】:

我认为你编辑错了php.ini。在phpinfo();中可以看到加载的ini文件 可能缺少 libcurl 依赖项。 PHP 5+ 需要 libcurl 版本 7.10.5 或更高版本。 在这方面与 Daniel 合作。还要检查您的 phpinfo 输出中的 extension_dir。无需猜测 PHP 在哪里寻找。 我遇到了同样的错误,这个 SO 链接帮助我解决了这个问题:***.com/questions/16234239/… 【参考方案1】:

点击 WAMP 图标 > PHP > PHP Extensions > 检查 php_curl。

如果已选中,请取消选中,再次选中,然后重新启动所有服务。应该可以。

如果仍然无法正常工作,请重新安装 WAMP。很简单。

【讨论】:

他在上一段不是说他累了吗? 有趣.. 我试图取消选中它并再次检查它,只是为了好玩。当我“取消选中”它时,服务似乎重新启动,但是当我进入 Extensions 菜单时,php_curl 仍然被选中(因此是 airquotes)。当我再次尝试时,我收到一条错误消息:“无法执行菜单项(内部错误)[EAccessViolation] 模块'wampmanager.exe'中地址00403A56的访问冲突。读取地址84104888”,但复选标记确实消失了。 最后我再次尝试检查。在复选标记实际出现之前,仍然必须这样做几次。而且还是不行。 你刚刚尝试重新安装 wamp 吗?【参考方案2】:

WAMP 2.2 带有错误的 cURL 扩展名。您应该从以下链接下载固定文件:http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/。然后将文件php_curl.dll替换成/php5.4.3/ext/

【讨论】:

很想在 5 小时前找到此评论。非常感谢。 很好的答案!有完全相同的问题,并解决了它。 @Rubberduck 应该接受它。只需确保在页面上向下滚动到“固定卷曲扩展” 我花了很多时间寻找修复程序。谢谢!同意,应该接受这个答案。 感谢您节省了大量时间。完美运行。有 5.3.13 版本。第一次复制 php_curl-5.3.13-nts-VC9-x64 并没有用替换的 php_curl-5.3.13-VC9-x64 ....和 ​​whoi..la .... 它有效。虽然,我不知道区别。如果有人可以启发它。 @TechCare99 我遇到了同样的问题。它也对我有用。【参考方案3】:

对我来说,这成功了:http://www.phpmind.com/blog/2011/02/how-to-enable-curl-in-wamp/

1) 关闭 WAMP(如果正在运行)

2) 导航到 WAMP\bin\php(您的 php 版本)\

3) 编辑 php.ini

4) 搜索 curl,取消注释 extension=php_curl.dll

5) 导航到 WAMP\bin\Apache(您的 apache 版本)\bin\

6) 编辑 php.ini

7) 搜索 curl,取消注释 extension=php_curl.dll

8 ) 保存两者

9) 重启 WAMP

【讨论】:

谢谢,这对我有帮助。我不知道 WAMP 中的 php.ini 是重复的……这浪费了我 2 个小时的时间-_- 谢谢,它帮助了我:) 在我的窗口中,这两个文件是链接的。当我编辑一个时,另一个也会自动编辑。

以上是关于调用未定义的函数 curl_init() - 使用 WAMP的主要内容,如果未能解决你的问题,请参考以下文章

调用未定义的函数 curl_init() - 使用 WAMP

调用未定义的函数 curl_init() - 使用 WAMP

在 wamp 2.2 中调用未定义函数 curl_init() 错误

在 wamp 2.2 中调用未定义函数 curl_init() 错误

PHP 致命错误:调用未定义的函数 curl_init()

调用未定义的函数 curl_init() 即使它在 php7 中启用