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 / внутр, апач / бен, PHP
  3. Добавлена ​​системная переменная php path
  4. Пробовал оба PHP7 и PHP7.1
  5. Все это x64 и все остальные расширения загружены успешно и сервер работает, но не работает только php_curl
  6. некомментированное расширение в php.ini

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

2

Решение

Решение: Поместите файлы libeay32.dll, libssh2.dll, ssleay32.dll в каталог, указанный в директиве httpR.conf ServerRoot. Эти библиотеки могут быть скомпилированы в корневой папке php.

Причины:

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

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

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]