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.dll
和 SSLeay32.dll
。
因此,您必须将这 2 个 DLL 放在 PATH 中的某个位置(例如,C:\Windows\system32
)。仅此而已。
但是,即使这样最初对我也不起作用。所以我下载了最新版本的 PHP 的 Windows zip,其中包括所有必要的 DLL。我没有重新安装 PHP,我只是将“ext”文件夹中的所有 DLL 复制到我的 PHP 扩展文件夹(在 php.ini
中的 extension_dir
变量中指定),我复制了 libeay32.dll
和SSLeay32.dll
从 PHP 下载到我的 System32 目录中。
我也做了一个 iisreset,但我不知道这是否有必要。
【讨论】:
对我来说有必要重新启动 iis! 我也必须对libssh2.dll
做同样的事情。
感谢@GrayFox 还必须添加libssh2.dll
,仅与libeay32.dll
和ssleay32.dll
一起使用。
libeay32.dll
和 ssleay32.dll
已重命名为 libcrypto-*.dll
和 libssl-*.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.dll
和 ssleay32.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