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的主要内容,如果未能解决你的问题,请参考以下文章