Apache 不会加载 php_curl.dll

jam*_*mie 2 php apache curl

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
Run Code Online (Sandbox Code Playgroud)

这是 64 位 Windows Server 2016 安装。

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

这个Apache: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 文件夹。

我还能在这里尝试什么?

jam*_*mie 6

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

  • 先生,您是一个救星。尝试了各种建议。谢了哥们。 (4认同)

Ale*_*dro 6

在 PHP 7.4 中:

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

LoadFile "${MY_PHP_ROOT}/libssh2.dll"
Run Code Online (Sandbox Code Playgroud)

完整的 PHP 咒语httpd.conf可能如下所示:

LoadFile "${MY_PHP_ROOT}/libssh2.dll"
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

PS:LoadModule/LoadFile 的顺序并不重要。