Apache无法加载php_curl. dll

1bqhqjot  于 2023-03-11  发布在  PHP
关注(0)|答案(2)|浏览(149)

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 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文件夹。
我还能在这里试什么?

b4lqfgs4

b4lqfgs41#

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

hkmswyz6

hkmswyz62#

在PHP 7.4中:

最有可能的问题是只与Windows有关,如果你使用Apache2.4 + Php7,诀窍在于使用LoadFile指令来强制加载CURL,如我的Mini Guide中所解释的。你不需要奇怪的东西来让CURL在你的机器上工作,你需要编辑文件httpd.conf并添加以下内容:

LoadFile "${MY_PHP_ROOT}/libssh2.dll"

因此httpd.conf中完整的PHP语法可能如下所示:

##
#BEGIN PHP
Define MY_PHP_ROOT "c:/Dev/PHPs/PHP74"

AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
LoadModule php7_module "${MY_PHP_ROOT}/php7apache2_4.dll"
PHPIniDir "${MY_PHP_ROOT}/"

# Load library required for CURL
LoadFile "${MY_PHP_ROOT}/libssh2.dll"

#END PHP
##

希望这个有用。
PS:LoadModule/LoadFile的顺序无关紧要。

相关问题