在 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.dll 和 libssh2.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.ini
在php.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.dll
和 libcrypto-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
Wamp中的“调用未定义函数sqlsrv_connect()”,已安装驱动程序[重复]
在第 7 行调用 C:\wamp\www\Webs\client.php 中未定义的函数 sqlsrv_connect()