Apache 不会加载 php_curl.dll

Posted

技术标签:

【中文标题】Apache 不会加载 php_curl.dll【英文标题】:Apache won't load php_curl.dll 【发布时间】:2018-10-31 07:23:38 【问题描述】:

Apache 给我这个错误

php Warning:  PHP Startup: Unable to load dynamic library 'curl' (tried: C:/Users/tester/Desktop/Web Server/php-7.2.5-Win32-VC15-x64/ext/curl (The specified module could not be found.), C:/Users/tester/Desktop/Web Server/php-7.2.5-Win32-VC15-x64/ext/php_curl.dll (%1 is not a valid Win32 application.)) in Unknown on line 0

这是 64 位 Windows 服务器 2016 安装。

这个 PHP https://windows.php.net/downloads/releases/php-7.2.5-Win32-VC15-x64.zip

这个阿帕奇:https://www.apachelounge.com/download/VC15/binaries/httpd-2.4.33-win64-VC15.zip

所有其他模块工作+加载正常。

我尝试将 ext 路径添加到我的系统变量中。

我尝试过使用 32 位版本的 PHP_curl.dll

我尝试将 libeay32.dll、libssh2.dll、ssleay32.dll 复制到几乎所有地方。 Apache 根目录,ext 文件夹。

我还能在这里尝试什么?

【问题讨论】:

关于 curl、安装和 win32 的 PHP 手册 - "注意:Win32 用户注意事项 为了在 Windows 环境中启用此模块,请使用 libeay32.dll 和 ssleay32.dll,或者,从OpenSSL 1.1 libcrypto-*.dll 和 libssl-*.dll,必须存在于您的 PATH 中。您不需要来自 cURL 站点的 libcurl.dll。" 他们都是:-( 【参考方案1】:

最后,我只需要简单地将 libcrypto-1_1-x64.dll、libssh2.dll、libssl-1_1-x64.dll 和 nghttp2.dll 从 PHP 文件夹复制到 apache bin 文件夹中。

【讨论】:

您先生是救生员。尝试了各种建议。谢谢老兄。 Tnx。将 PHP 从 v7.1 更新到 v7.2 后,我也遇到了同样的问题。【参考方案2】:

在 PHP 7.4 中:

很可能是只与Windows 相关的问题,如果您使用Apache2.4 + Php7,技巧在于使用LoadFile 指令强制加载CURL,如我的@987654321 中所述@。你不需要奇怪的东西让CURL在你的机器上工作,你需要编辑文件httpd.conf并添加这个:

# load CURL library on Windows
LoadFile "$SRVROOT/php/libssh2.dll"

希望这会有所帮助。

【讨论】:

谢谢,这对我在 Win10 上使用 Apache2.4 和 PHP7 有效 这个解决方案比公认的解决方案要干净得多,并且避免复制 dll,这肯定会随着时间的推移而分道扬镳。

以上是关于Apache 不会加载 php_curl.dll的主要内容,如果未能解决你的问题,请参考以下文章

Wampserver 橙色 - PHP_curl.dll

PHP 无法加载 php_curl.dll 扩展

php_curl.dll libssh2.dll 始终无法加载的原因 及解决办法

PHP开启cURL功能

必须加载 PHP 扩展“curl”

php5.6开启curl