PHP cURL不起作用 - 在Windows 7 64位上使用WAMP

170

我已经在我的Windows 7 64位系统上安装了WAMP,但是cURL无法使用,尽管我从WAMP托盘中将其启用。

我还取消了PHP和Apache文件夹中的php.ini文件中的extension=php_curl.dll注释。

Windows给出了以下错误信息:

PHP启动:无法加载动态链接库'c:/wamp/bin/php/php5.4.3/ext/php_curl.dll' - 应用程序无法启动,因为它的配对配置不正确。请参阅应用程序事件日志或使用命令行sxstrace.exe工具获取更多详细信息。"

我该如何解决这个问题?


6
我个人使用XAMPP,我发现WAMP在许多方面都会出现问题。如果其他方法都不起作用,你可以尝试一下XAMPP。 - Tim Withers
4
我喜欢使用WAMP,我从未遇到过任何问题。 - Drewdin
2
我认为你最好回退到Apache v2.2.9和PHP v5.3.1。 - Joshua Pinter
这似乎仍然是在运行PHP 5.4.13和Apache 2.4.4的WAMP中存在的问题。Curl一直工作正常,然后突然停止并导致我的脚本崩溃。现在,只有一个简单的curl init引起了问题(文件中唯一的内容)。是否有任何更新的补丁来源? - Shawn
http://stackoverflow.com/questions/41107356/apache-2-4-23-php7-x-windows-10-x64-php-curl-not-working - Wasim A.
14个回答

310

3
非常感谢。我因此而烦恼了很久。情况是这样的,它可以工作,但无法用于curl_multi!不过,它指引了我正确的方向。我只需前往wamp的网站下载Apache插件版本2.2.9和PHP插件版本5.3.1。使用它们即可正常工作。教训:并非所有最新版本都是最好的。 - pHelics
6
请确保终止 httpd、wampmanager 及所有相关进程,然后重新启动 WAMP 应用程序。否则有时无法真正重新加载。 - guy mograbi
1
请确保下载与您的PHP版本相对应的VC版本的curl,否则它将无法工作。 - Narretz
2
也不行,我尝试了所有的方法,有人能连接到我的电脑并检查一下吗?或者给我建议如何解决,我已经尽力了。 - Liad Livnat
10
谢谢!!! 对于所有人:它必须工作,不要忘记选择固定的curl扩展(如果你在答案中错过了它),这非常重要!其他的不起作用。 - Shomz
显示剩余10条评论

25

我曾经遇到了完全相同的问题。在尝试了几乎所有方法并查阅 Stack Overflow 后,我最终找到了原因。请从PHP 5.4.3 和 PHP 5.3.13 x64 (64 位)Windows 版中单独下载 "fixed curl extension"。

我下载了 "php_curl-5.4.3-VC9-x64",成功解决了我的问题。希望这能够帮到你。


1
这是一个很好的解决方案,只需替换一个dll文件,无需降级。 - Ekim
1
除此之外,我还发现需要升级到最新版本的WAMP,并将php bin文件夹添加到我的%PATH%变量中。 - Lea Hayes

13

适用于我的情况:

  • 进入此链接
  • 在“Fixed curl extensions:”下下载*php_curl-5.4.3-VC9-x64.zip*
  • 替换ext文件夹中的php_curl.dll文件。

这对我起作用了。


1
非常感谢。我从该链接下载了适用于PHP 5.3.13的php_curl-5.3.13-VC9-x64.zip文件,并且它可以正常工作。 - Vinay Jeurkar
http://stackoverflow.com/questions/41107356/apache-2-4-23-php7-x-windows-10-x64-php-curl-not-working - Wasim A.

5

我自己曾经也为此苦苦挣扎。最终,PHP版本5.3.1和Apache 2.2.9配合使用解决了问题...

我一直收到缺少php5.dll的错误提示。为此,我将所有旧的php.ini文件(WAMP文件夹外)重命名为old_ohp.ini


1
我尝试了一切,从上面的答案到重新安装WAMP。最终我尝试了这个方法,现在PHP 5.3.1和Apach 2.2.9都运行良好。谢谢! - StapleGun

4
错误与PHP无关。这意味着您某种程度上依赖于Apache的mod_deflate,但该Apache模块未加载。尝试在httpd.conf中启用mod_deflate或注释掉有问题的行(在httpd.conf 中搜索 DEFLATE)。
至于PHP curl扩展,您必须确保在php.ini中激活它。确保extension_dir设置为php_curl.dll所在的目录:
extension_dir = "C:/whatever" 然后添加
extension=php_curl.dll

这对我来说有效 PHP7 Win 10 64位。在php.ini中添加以下内容: extension_dir = "C:\ php \ ext" extension = php_curl.dll
还要在用户和系统变量中将C:\ php添加到PATH
- Emmanuel N K

2
以下是步骤:
  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

希望以上翻译对您有所帮助。

这在我使用的64位WAMP安装上有效 ;) - martindilling

1
我认为cURL无法与WAMP 2.2e兼容。我尝试了所有你提供的解决方案,但仍然无法正常工作。我下载了之前的版本(2.2d),它可以正常工作。
所以只需下载之前的版本即可 :D

0

php.ini文档中取消注释"curl=cainfo"。 当所有其他方法仍然无法工作时,这对我在安装Prestashop时有所帮助。


0

确保系统的PATH环境变量包含PHP安装目录的路径。 停止Apache服务器并再次启动。希望CURL能够开始工作。


0

我在win8 wamp3 php5.6上遇到了curl无法工作的问题。重新安装wamp(因为我的系统信息中有x64版本),问题得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接