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

Posted

技术标签:

【中文标题】在 wamp 2.2 中调用未定义函数 curl_init() 错误【英文标题】:Call to undefined function curl_init() error in wamp 2.2 【发布时间】:2012-09-05 00:43:45 【问题描述】:

当我尝试在 Windows 7 中使用 wamp 服务器实现 google 和 facebook 身份验证时出现以下错误。

致命错误:调用未定义的函数 curl_init() E:\wamp\www\mysite\protected\extensions\eauth\EAuthServiceBase.php 在第 273 行

我正在使用,

wampserver 2.2 php 版本 5.3.13

我也启用了 php_curl 模块。我检查了 php.ini 以进行确认,但未注释如下。

;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll

该代码在 ubuntu 和 xampp 中有效,但在 windows 中的 wamp 中无效。我已经做了我能找到的一切。我也尝试根据此线程的评论替换 php_curl.dll,Call to undefined function curl_init() - with WAMP

我的 phpinfo() 如下所示。

我在E:\分区安装了wamp,但是“配置文件(php.ini)路径”好像不一样,是C:\Windows。

请帮我解决这个问题。

【问题讨论】:

phpinfo() 并检查您是否修改了正确的配置文件 你启动了 php_curl 扩展了吗 @zerkms:感谢您的评论,我再次检查了加载的配置文件是否正确,并且 php_curl 已经取消注释 @RegisteredUser:感谢您的评论,是的,我已经启用并启动了 php_curl 扩展。 php.ini 中设置的扩展目录是什么? 【参考方案1】:

访问这个并在 Fixed curl extensions 下有一个文件: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/ 下载并替换相关文件后重启服务器。 在浏览器中导航到 localhost 并确保在 Loaded Extensions 下显示 curl 扩展:

【讨论】:

另外,请确保您使用“Fixed Curl Extensions”底部的那些存档中的那些由于某种原因不起作用,它给了我并排错误。谢谢黑暗之愿。 嘿我有同样的问题,如上所述,我下载了 php_curl-5.4.3-VC9-x64.zip 并将 dll 文件复制到 Xampp 的 php 文件夹中的 ext 文件夹中。它仍然给出同样的错误。我该怎么办? 是的,我可以确认大型档案中的那些不能使用固定卷曲的那些(页面底部的那些) 这个对我有用 (Windows 7 64bit, PHP 5.3.13) mediafire.com/download/qwgdzgccthzwc15/… 只需重命名/备份旧的php_curl.dll 并用新的替换它,重新启动 Wamp 应该会很好去吧。 PHP 7.3.8 怎么样...?【参考方案2】:

对于在 Windows 7 64 位上运行 PHP 5.4.3 的 WAMP,请确保使用 php_curl-5.4.3-VC9-x64.zip 而不是 php_curl-5.4.3-nts-VC9-x64.zip。

【讨论】:

@Pacerier 只能使用线程安全版本。 'nts' 表示非线程安全【参考方案3】:

在带有 PHP 5.5.31 的 Windows 7 中,检查 php_curl.dll 扩展是否已启用(但仍然无法正常工作)后,请为我复制 libeay32.dlllibssh2.dll 从 php 目录到 Apache bin。

【讨论】:

对我来说,它只适用于处理 libssh2.dll。 Windows 10 上的 PHP 版本 7。谢谢。【参考方案4】:

只是猜测 - php.ini 中的这一部分没有引用正确的位置

; Directory in which the loadable extensions (modules) reside.
extension_dir = *some value*

http://www.php.net/manual/en/ini.core.php#ini.extension-dir

编辑

另外,在你的 phpinfo 中寻找这个块,如果它不存在,curl 没有加载(很明显)。您不是在寻找匹配的版本号 - 只是为了块的存在。

编辑

也看看这个问题

PHP and CURL under Windows 7 64 bits and Apache

【讨论】:

感谢 Tim G,我的“extension_dir”路径正确。这是 extension_dir = "E:/wamp/bin/php/php5.3.13/ext/"。但我的 phpinfo 中没有“Curl”块。我能做些什么?请帮忙。 apache 启动时日志文件中有任何线索吗?检查 apache 错误日志。 你重启了apache吗?您是直接编辑 php.ini 文件吗? wamp 在启动 apache 时会覆盖 php.ini 吗? (我问的原因是mamp使用模板并在每次启动时覆盖php.ini)【参考方案5】:

下载此文件并替换您的 php_curl 文件。

http://pan.baidu.com/share/link?shareid=256509&uk=3675208906

【讨论】:

这个来源似乎不太可靠。你能解释一下它是什么吗?【参考方案6】:

使用 WAMP 时..

您应该在 PHP 主目录中有一个文件 php.iniphp.ini 中启用扩展extension=php_curl.dll,方法是删除; 字符 extension_dir 必须类似于以下示例:extension_dir = "D:\AMP\PHP\ext\",因此不是相对路径 您只需重新启动 Apache 服务器一次。无需多次重启 请确保 php_curl.dll 位于 ext 目录中

【讨论】:

【参考方案7】:

(Windows 10 用户)

由于这是 Google 的第一个结果,我遇到了完全相同的问题,而且您的解决方案都没有为我工作,我终于在 *** 的另一个线程中找到了正确的解决方案,我将在此处发布链接: EasyPHP Devserver 16.1 Curl Win 10

解决方案是将您当前的 PHP 目录(取决于您使用的版本)添加到 Windows 中的全局“路径”变量中(如链接中所述,但您当然不需要添加所有 php 目录)

【讨论】:

【参考方案8】:

不知道把我的经验放在哪里,希望它对某人有用。

在我的情况下(win7 x64 + apache 2.4 + php 7.2),在php.ini 中启用了 curl 扩展,但没有加载。通过将 Apache 的 bin 文件夹中的库 libssl-1_1-x64.dlllibcrypto-1_1-x64.dll 替换为 OpenSSL 的 latest builds

解决了

【讨论】:

【参考方案9】:

更改 php.ini 文件中的扩展名,通过删除 ; 取消注释如下所示

;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll

然后重启所有服务就可以了。

【讨论】:

以上是关于在 wamp 2.2 中调用未定义函数 curl_init() 错误的主要内容,如果未能解决你的问题,请参考以下文章

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

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

cURL 不适用于 WAMP

Wamp中的“调用未定义函数sqlsrv_connect()”,已安装驱动程序[重复]

在第 7 行调用 C:\wamp\www\Webs\client.php 中未定义的函数 sqlsrv_connect()

致命错误:使用 wamp php 5.5.12 调用未定义函数 sqlsrv_connect()