Windows 上的 PHP/cURL 安装:“找不到指定的模块。”

Posted

技术标签:

【中文标题】Windows 上的 PHP/cURL 安装:“找不到指定的模块。”【英文标题】:PHP / cURL on Windows install: "The specified module could not be found." 【发布时间】:2010-09-05 22:56:23 【问题描述】:

我正在使用 IIS 5 在 Windows 2000 Server 上运行 php 5.2.3。我正在尝试 为了让 cURL 工作,所以在我的 php.ini 文件中,我有这一行:

extension_dir="F:\PHP\ext"

后来,我有:

extension=php_curl.dll

文件 F:\PHP\ext\php_curl.dll 存在,但是当我尝试运行任何 PHP 脚本,我在错误日志中得到了这个:

PHP 警告:PHP 启动:无法加载动态库 'F:\PHP\ext \php_curl.dll' - 找不到指定的模块。 在第 0 行的未知中

【问题讨论】:

【参考方案1】:

问题解决了!

虽然错误信息说找不到指定的模块,但这有点误导——不是找不到php_curl.dll,而是找不到php_curl.dll 需要的模块。它需要的 2 个 DLL 是 libeay32.dllSSLeay32.dll

因此,您必须将这 2 个 DLL 放在 PATH 中的某个位置(例如,C:\Windows\system32)。仅此而已。

但是,即使这样最初对我也不起作用。所以我下载了最新版本的 PHP 的 Windows zip,其中包括所有必要的 DLL。我没有重新安装 PHP,我只是将“ext”文件夹中的所有 DLL 复制到我的 PHP 扩展文件夹(在 php.ini 中的 extension_dir 变量中指定),我复制了 libeay32.dllSSLeay32.dll 从 PHP 下载到我的 System32 目录中。

我也做了一个 iisreset,但我不知道这是否有必要。

【讨论】:

对我来说有必要重新启动 iis! 我也必须对 libssh2.dll 做同样的事情。 感谢@GrayFox 还必须添加libssh2.dll,仅与libeay32.dllssleay32.dll 一起使用。 libeay32.dllssleay32.dll 已重命名为 libcrypto-*.dlllibssl-*.dll【参考方案2】:

提示是使用WAMP-installer。一切正常。虽然它不是 IIS - 所以如果它很重要 - 你应该忽略我的建议。 ;)

编辑:我看到你找到了解决方案,所以我投了赞成票。 +1

【讨论】:

使用 xampp 安装时,仍然需要将 libeay32.dll 和 SSLeay32.dll 包含到系统路径中。虽然不确定 WAMP 安装程序。但是要注意一些事情。 应该提到它使用 Apache 而不是仅仅说“不是 IIS”。【参考方案3】:

我一直遇到同样的问题,尽管我做了上面的建议,我得到了互联网上许多其他人的建议

抱歉,这个插件需要在你的电脑上激活 libcurl 服务器。

当我尝试激活我的插件时。

已编辑:我使用的是 php 5.3.13 有 win64 windows 7 并且没有一个解决方案对我有用。

1.我试图复制 windows\system32 文件夹中的 libeay32.dll SSLeay32.dll 无效 2. 编辑和取消注释两个 php.ini 文件都不起作用 3. php扩展中激活的php_curl不起作用 4. 复制并替换了几次www.anindya.com 版本的php_curl.dll,但似乎我下载了错误的版本。对我有用的版本在 Fixed curl extensions 部分的第二个文件 php_curl-5.3.13-VC9-x64

希望这对其他人有帮助

【讨论】:

如果您仍然遇到问题,您可能想将此作为一个新问题提出,并指出您已经尝试过此问题的建议,并提供有关您的情况的更多详细信息。例如,您使用的是什么操作系统、网络服务器、插件等?【参考方案4】:

libeay32.dllssleay32.dll 必须是路径可访问的,php_curl.dll 才能正常工作。

控制面板 -> 搜索 -> 高级系统设置并使用按钮环境变量

系统变量 下找到 Path 添加 c:/php 文件夹(或任何路径)并重新启动 Apache。

【讨论】:

为我工作。但是,我必须重新启动 Windows 才能使环境变量更改生效。我从 Apache Lounge 手动安装了 Apache,作为服务添加。 @elQuique 太棒了,谢谢这救了我 - 在我添加 ENV var 之前无法让 cURL 工作!【参考方案5】:

当我将 UwAmp 中的 php 升级到 7.2.* 时遇到了这个问题。唯一对我有用的解决方案是下载当时最新版本的 apache (Apache/2.4.37 (Win32)) 并替换 UwAmp 附带的那个。这还涉及编辑示例 httpd.conf 以生成 httpd_uwamp.conf 文件。 UwAmp 需要此模板,然后在启动时生成实际的 httpd.conf。不幸的是,上述所有其他建议都没有为我解决。另请注意,从 OpenSSL 1.1 开始,不再需要 libeay32.dll 和 ssleay32.dll(请参阅 http://php.net/manual/en/curl.installation.php)

【讨论】:

这也是唯一对我有用的东西。我必须更新 Apache 和 PHP (Win32-vs16-x86) 并复制/粘贴两个 uwamp ini 文件才能彻底解决这个问题。

以上是关于Windows 上的 PHP/cURL 安装:“找不到指定的模块。”的主要内容,如果未能解决你的问题,请参考以下文章

PHP curl 不适用于 Windows 和 Apache

如何在 Xampp Windows 10 上重新安装 PHP cURL?

Windows下php curl调用本地url 499问题

WAMP 卷曲安装

php – cURL从重定向获取url

php curl模拟登陆抓取数据