apache — php curl на windows 10, php 5.6.17

Есть много похожих тем, но ни одно решение не решило мою проблему в окне 10 (на новом компьютере компьютер полностью очищен).

Я устанавливаю EasyPhp с php 5.6.17 на Windows 10, молодец!
=> curl_init () не работает

Теперь я хочу установить curl.
Во-первых, в php.ini я раскомментирую строку «extension = php_curl.dll» (это хороший php.ini, я вижу путь в phpinfo ()) и перезагружаю Apache.
=> curl_init () не работает

Я добавляю libeay32.dll, libssh32.dll и ssleay32.dll в Windows / system32.
=> curl_init () не работает

На этом шаге свернутая работа сделана на моих windows 7.

Я добавляю libeay32.dll, libssh32.dll и ssleay32.dll в Apache / bin.
=> curl_init () не работает

Я добавляю php_curl.dll в Windows / system32.
=> curl_init () не работает

Я пытаюсь php_curl.dll 32 и 64.
=> curl_init () не работает

Я устанавливаю программное обеспечение OpenSSL (ssl требуется для curl).
=> curl_init () не работает

У меня нет сообщения об ошибке, кроме «Неустранимая ошибка: вызов неопределенной функции curl_init ()». phpinfo () никогда не отображает модуль curl.

У меня заканчивается решение, есть идеи?

2

Решение

Я нашел проблему (после одного полного дня по этой проблеме).
Если вы столкнулись с той же проблемой, попробуйте это:

  • откройте командную строку и перейдите в корневой каталог php
  • exec: deplister.exe ext \ php_curl.dll
  • проверить зависимости

Для меня файл libssh32.dll отсутствовал, но он был в Windows / system32 и apache / bin. Чтобы решить эту проблему, я добавляю каталог php в окна пути и копирую файл libssh32.dll в каталог php.

Источник

3

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

У меня была точно такая же проблема с этой установкой dev:

  • Windows 10
  • PHP 5.6.27
  • Apache 2.2 (да, я знаю, что v2.4 новее)

В PHP-CLI это работает (php curl ext загружен), но не при работе через Apache (php curl ext не загружается).

Потратив немало времени на чтение об этом и пробуя разные решения, именно Джереми больше всего помог мне с командой «deplister».

Оказывается (для меня) те же самые dll-файлы (например, libeay32.dll и ssleay32.dll), которые присутствуют в различных папках (например, php /, apache / bin и windows / system32). Однако даже названы одинаково, там, где разные их версии, указаны их разные даты и размеры.

То, что заставило php-curl магически работать для меня, состояло в том, чтобы заменить libeay32.dll и ssleay32.dll в apache / bin новыми версиями, которые я нашел в php / (корневая папка php), и перезапустить службу apache.

Все эти папки присутствуют в системном PATH, но Apache, очевидно, сначала смотрит в свою собственную папку bin. Итак, я считаю, что лучше копировать новые DLL в папку bin Apache, а не полагаться на системный PATH.

Надеюсь, что это может помочь кому-то еще.

1

В дополнение к ответу kapy47: в моем случае я проверил libssh2.dll в каталогах apache / bin и php, они были разных версий. Я заменил на более новые версии в apache / bin и проблема была решена

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