在Windows上的Apache中无法正确加载PHP cURL

在Windows上的Apache中无法正确加载PHP cURL,php,apache,curl,Php,Apache,Curl,我最近从零开始安装了apache+php+mysql,除了php的cURL、imap和interbase扩展之外,其他一切似乎都运行良好 ext目录具有所有必需的dll,包括php_curl.dll和其他提到的扩展。但是,在错误日志中,下面是 PHP Warning: PHP Startup: Unable to load dynamic library 'B:/XServ/host/php/ext\\php_curl.dll' - The specified module could not

我最近从零开始安装了apache+php+mysql,除了php的cURL、imap和interbase扩展之外,其他一切似乎都运行良好

ext目录具有所有必需的dll,包括php_curl.dll和其他提到的扩展。但是,在错误日志中,下面是

PHP Warning:  PHP Startup: Unable to load dynamic library 'B:/XServ/host/php/ext\\php_curl.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'B:/XServ/host/php/ext\\php_intl.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'B:/XServ/host/php/ext\\php_interbase.dll' - The specified module could not be found.\r\n in Unknown on line 0
[Tue Jul 12 19:16:07.025738 2016] [mpm_winnt:notice] [pid 2100:tid 344] AH00354: Child: Starting 64 worker threads.
正如您可能已经注意到的,后面有两个反斜杠,而不是一个正斜杠

另外,这里是我的php.ini的一个片段

extension_dir = "B:/XServ/host/php/ext"

extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
;extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
所有其他扩展都可以正常工作

我使用的是Windows8.1、Apache2.4.23、PHP7.0.8


有什么解决方案吗?

cURL和Windows从来都不是幸福的一对,你需要一个扩展,请转到

并在“Fixed cURL extensions”下下载与PHP版本对应的cURL版本,然后替换ext文件夹中的
PHP_cURL.dll

希望能有帮助

您可能需要先测试
PHP

您是否尝试过在控制台上运行
php-v
?它将向您返回一个确切的错误,即即使扩展目录有正确的路径,它也无法加载指定的模块

同时

libCurl需要文件
libssh2.dll
。因此,要解决此问题,请尝试以下方法:

libssh2.dll
文件从PHP目录复制到Apache的BIN目录(与
httpd.exe
位置相同)

httpd.conf
文件中,添加以下内容
`加载文件B:/XServ/host/php/libssh2.dll

尝试在浏览器地址栏中键入
B:/XServ/host/php/ext
,您可以访问它吗?是的,我可以访问它。您可能还需要在apache的bin dir中替换
nghttp2.dll
,就像PHP7.2.2一样