调用未定义的函数 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/ext
目录php_curl.dll
(和libcurl.dll
)所在的目录.
@ficuscr:我把libcurl.dll v.7.27.0
复制到了整个地方。我应该把它放在哪里?
一般情况下:当php_curl
在PHP > 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() 错误