Apache 2.4.23 PHP7.x Windows 10 x64 php_curl не работает

Я пытался обновить свой сервер до последних Apache 2.4.23 и PHP 7.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 

Я попробовал следующее

  1. Изменить путь расширения до полного пути, например d: \ webserver \ php \ ext
  2. Скопируйте php_curl.dll, libssh2.dll, libeay32.dll, ssleay32.dll в System32 , php / ext , apache / bin , php
  3. Добавлена ​​системная переменная php path
  4. Попробовали как PHP7, так и PHP7.1
  5. Все это x64, и все остальные расширения успешно загружены и работают на сервере, но только php_curl не работает
  6. uncommented extension в php.ini

  • Apache 2.4.23 x64
  • PHP7 и также попробовал PHP7.1 (Thread Safe) x64
  • Windows 10 x64

Решение. Поместите файлы libeay32.dll, libssh2.dll, ssleay32.dll в каталог dir, указанный в директиве ServerRoot httpd.conf. Эти DLL-файлы можно найти в папке php root.

Причины:

Проблема заключается в том, что php_curl.dll требует доступа к следующим библиотекам при загрузке: libeay32.dll, libssh2.dll, ssleay32.dll, и это не имеет смысла, если вы помещаете их в ./php/ext dir или если вы добавляете расширения php в php root реж.

Конечно, вы можете поместить их в c: \ Windows или в какую-либо глобальную папку, определенную в PATH, но если вы этого не хотите, и хотите, чтобы ваша установка apache + php была переносимой:

Путь, указанный в ServerRoot в httpd.conf, рассматривается как домашний путь для php. Поведение похоже на ситуацию, когда вы включаете файл ./path/to/some.php в ./index.php и домашний путь для файла some.php. / Dir где находится index.php.

В шортах просто поместите эти три библиотеки DLL в каталог, указанный в httpd.conf директиве ServerRoot, и php_curl.dll не перестанет загружаться снова.