我有带有 WAMP 服务器的 Windows 10(Apache 2.4.9、PHP 5.5.29 VC11 x64、e MySQL)。一切正常,但现在我将使用curl扩展。
我进入
C:\wamp\bin\php\php5.5.29\phpForApache.ini
(从网络服务器配置)并删除extension=php_curl.dll
中的注释
重新加载 apache 服务器并在
error_log
我有
[2015 年 9 月 22 日 13:13:30 UTC] PHP 警告: PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.5.29/ext/php_curl.dll' - Impossibile trovare il modulo Specificato.in 在线未知 0
DLL 位于正确的文件夹中,其他 DLL 工作正常。
1°尝试:我在系统变量PATH中添加:
C:/wamp/bin/php/php5.5.29/ext/;c:/wamp/bin/php/php5.5.29/
2°尝试:我已经重新下载了文件
php-5.5.29-Win32-VC11-x64.zip
并替换了php_curl.dll
但我总是得到相同的结果:
index.php
致命错误:调用未定义的函数curl_exec()
phperror_log:
[2015 年 9 月 22 日 13:13:30 UTC] PHP 警告: PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.5.29/ext/php_curl.dll' - Impossibile trovare il modulo Specificato.in 在线未知 0
这些步骤对我有用:
将 Apache bin 文件夹添加到 Windows 中的 Path Env 变量中
将php文件夹中的libssh2.dll文件复制到apache的bin中 文件夹(Apache 似乎需要这个才能使 php 的curl 在 Windows 中工作)
PHP 启动:无法加载动态库“curl”... 取消注释 php.ini 文件中的 2 行即可解决此问题
;extension_dir = "ext"
例如,如果您的 php 位于 C 文件夹“php”下,则您的extension_dir =“ext”应放置为extension_dir =“C:\ php xt”;extension=curl
什么对我有用:
我将 libssh2.dll、libcrypto-1_1-x64.dll、libssl-1_1-x64.dll、ssleay32.dll、libeay32.dll 复制到 Apache bin 文件夹。可能并不需要所有这些。
在 php.ini 中,确保扩展curl已加载。这对于 php 7 中的 php
extension=php_curl.dll
来说是 < 7 and extension=curl
重启Apache服务
确保在
php.ini
中,extension_dir =
指向正确的路径(如果未注释)。
另一种可能性是 apache 和 php 版本之间不兼容,至少如果您使用的是 wampserver 和/或缺少 VC++ 可执行文件。我使用的是 php 7.4.11 和 apache 2.4.27。升级到 apache 2.4.46d 并安装缺少的可执行文件解决了该问题。该版本的 apaache 还需要将 wampserver 更新到 3.2.5。确保所有 Windows VC++ 可执行文件均已安装。有一个小工具可以检查这一点。更新和工具可在 https://wampserver.aviatechno.net/
找到@参见http://forum.wampserver.com/read.php?2,151396
我执行了 wampserver/apache 更新并一次性安装了一些丢失的 VC++ 文件,所以我无法确定哪一个真正解决了加载curl 的问题。
添加到 Apache httpd.conf:
LoadFile "C:/Php56/libssh2.dll"
LoadFile "C:/Php56/libeay32.dll"
LoadFile "C:/Php56/ssleay32.dll"
我在 Windows 上使用 wamp 时遇到了同样的错误 当我使用 php 删除另一个应用程序(并产生冲突)并重新安装 wamp 时,问题解决了