Apache 2.4.23 PHP7.x Windows 10 x64 php_curl不工作

Apache 2.4.23 PHP7.x Windows 10 x64 php_curl不工作,php,windows,apache,64-bit,php-curl,Php,Windows,Apache,64 Bit,Php Curl,我试图将我的服务器升级到最新的Apache2.4.23和PHP7.1,但它无法加载PHP_curl库,不知道为什么 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0 我试过以下几点 将扩展路径更改为完整路径,如d:\webserver\php\ext

我试图将我的服务器升级到最新的Apache2.4.23和PHP7.1,但它无法加载PHP_curl库,不知道为什么

PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0
我试过以下几点

  • 将扩展路径更改为完整路径,如d:\webserver\php\ext
  • php\u curl.dll、libssh2.dll、libeay32.dll、ssleay32.dll
    复制到System32php/extapache/binphp
  • 添加了php路径系统变量
  • 已经尝试过PHP7和PHP7.1
  • 所有这些都是x64和所有其他扩展成功加载,服务器工作,但只有php_curl不工作
  • php.ini中的未注释扩展

    • Apache 2.4.23 x64
    • PHP7,还尝试了PHP7.1(线程安全)x64
    • Windows 10 x64

      • 解决方案:将libeay32.dll、libssh2.dll、ssleay32.dll文件放在httpd.conf的ServerRoot指令中指定的目录下。这些DLL可以在php根文件夹下找到

        原因:

        问题是php_curl.dll在加载时需要访问以下库:libeay32.dll、libssh2.dll、ssleay32.dll,如果将它们放在./php/ext dir中或将php扩展放在php根目录中,则没有意义

        当然,您可以将它们放在c:\Windows或PATH中定义的某个全局文件夹中,但如果您不想这样做,并且希望您的apache+php安装是可移植的:

        httpd.conf中ServerRoot中指定的路径被视为php的主路径。这种行为类似于在./index.php中包含./path/to/some.php文件,而some.php文件的主路径仍然是./index.php所在的目录


        简而言之,只需将这三个dll放在httpd.conf ServerRoot指令中指定的目录中,php_curl.dll将不会再次加载失败。

        将php的路径从路径中移除dll只需复制到
        apache\bin
        folder不要将dll复制到
        \windows\system32
        folder是否检查了所有这些扩展在您的新
        php.ini
        文件中激活?您是否将
        php.ini
        文件从\php\复制到\apache\bin\是的,我已经阅读了该解决方案并尝试了,它不起作用。然而,我通过从wamp复制php目录修复了它,这些dll文件似乎有缺陷,wamp开发人员似乎自己编译。