33

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

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

我在用,

  • wampserver 2.2
  • php 版本 5.3.13

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

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

该代码已在带有 xampp 的 ubuntu 中运行,但在 windows 中的 wamp 中却没有。我已经做了我能找到的一切。我也尝试根据此线程上的评论替换 php_curl.dll,调用未定义函数 curl_init() - 使用 WAMP

我的 phpinfo() 如下所示。 在此处输入图像描述

我在 E:\ 分区中安装了 wamp,但是“配置文件 (php.ini) 路径”似乎不同,它是 C:\Windows。

请帮我解决问题。

4

9 回答 9

64

访问这个并在 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 扩展:

于 2012-09-12T12:14:49.540 回答
11

对于在 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。

于 2013-04-08T20:30:23.780 回答
4

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

于 2016-02-03T23:42:31.853 回答
1

只是一个猜测 - 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 未加载(显然)。您不是在寻找匹配的版本号 - 只是为了块的存在。

phpinfo 中的 curl 部分

编辑

也看看这个问题

Windows 7 64 位和 Apache 下的 PHP 和 CURL

于 2012-09-12T05:05:02.757 回答
0

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

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

于 2013-03-29T11:15:11.987 回答
0

使用 WAMP 时..

  • 您应该php.ini在 PHP 主目录中有一个文件
  • php.ini启用扩展extension=php_curl.dll中,通过删除;char
  • extension_dir必须看起来像这个例子:,extension_dir = "D:\AMP\PHP\ext\"所以不是相对路径
  • 您只需要重新启动 Apache 服务器一次。无需多次重启
  • 只需确保您php_curl.dllext目录中有
  • 于 2014-08-25T12:53:42.893 回答
    0

    (Windows 10 用户)

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

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

    于 2016-09-30T21:32:08.790 回答
    0

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

    就我而言(win7 x64 + apache 2.4 + php 7.2),curl 扩展已启用php.ini但未加载。通过用最新版本的 OpenSSL替换 libslibssl-1_1-x64.dllApache 的文件夹来libcrypto-1_1-x64.dll解决 bin

    于 2019-08-02T12:42:51.673 回答
    -2

    通过删除更改 php.ini 文件中的扩展名取消注释;像下面

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

    然后重新启动所有服务,它会工作。

    于 2014-07-25T13:42:40.030 回答