Как заставить CURL работать с PHP в Windows? (WAMP)

Обновление : похоже, проблема связана с поврежденными DLL-файлами где-то в моей установке PHP или, возможно, с ошибкой в ​​PHP 5.2.9 на Win2k. Я загрузил дистрибутив PHP 5.2.10 (только для двоичных файлов) из php.net и извлек его в каталог c: \ PHP. После этого все работало нормально.

Update2 : Я расстегнул все, что я пробовал раньше (все из маркированного списка ниже), за исключением того, что я оставил « extension=php_curl.dll » без extension=php_curl.dll в моем файле php.ini. Оказывается, это все, что вам нужно сделать при правильной установке.


Я пытаюсь заставить CURL работать с установкой Windows на PHP (версия 5.2.9-2), и я нахожусь в конце. Я нашел страницу установки PHP CURL , этот вопрос SO, который ссылается на эту страницу , и этот вопрос SO . Я пробовал большинство предложений на всех этих страницах, но я все еще получаю сообщение об ошибке. Вот моя очень простая тестовая страница:

 <?php $ch = curl_init(); ?> <b>Success!</b> 

Это дает мне:

Неустранимая ошибка : вызов неопределенной функции curl_init () в C: \ ApacheRoot \ curltest.php в строке 2

В моем журнале ошибок Apache я получаю это каждый раз, когда сервер запускает:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0

Я сделал следующее:

  • В php.ini: extension=php_curl.dll следующая строка: extension=php_curl.dll
  • Скопировали ssleay32.dll и libeay32.dll из C: \ PHP в C: \ WINNT \ System32
  • Загрузили cURL для Win32 из curl.haxx.se и извлекли .zip-файл в C: \ cURL
  • Добавлен C:\cURL в мою переменную среды PATH.
  • Проверено, что:
    • php.ini включает extension_dir="C:\PHP\ext"
    • Каталог C:\PHP\ext содержит php_curl.dll
    • Единственный файл php.ini в моей системе находится в C:\PHP (т. Е. Особенно, что нет C:\WINNT\php.ini )
    • Файл Apache httpd.conf включает в себя строку PHPIniDir "C:/PHP/"

Я также перезагрузил машину (несколько раз, на самом деле …).

Вам не нужно перезагружать компьютер, просто перезапустите apache, и модуль php прочитает новый ini.
Вы изменили правильный php.ini? В случае сомнений

 <?php echo 'php.ini: ', get_cfg_var('cfg_file_path'); ?> 

может сказать вам.

Есть ли что-то в error.log apache, что указывает на то, что во время загрузки php и php_curl.dll что-то пошло не так?

Вы запустили apache как службу win32? Если вы попытались запустить его в качестве консольного приложения. Тогда сообщения об ошибках появятся на консоли. Или запустите его как сервис и посмотрите файл error.log и журнал событий Windows (start, run, eventvwr.msc /s ).

редактировать:
«Указанная процедура не найдена»
Вам нужна DLL, совместимая с вашей версией PHP и ее сборкой. Что именно вы установили и откуда вы его взяли?

Попробуй это:

  1. Остановите WAMP полностью.
  2. Найдите свою папку WAMP: C: \ Path \ To \ WAMP \ bin \ Apache \ ApacheVersion \ bin \
  3. Отредактируйте расширение php.ini и uncomment = php_curl.dll
  4. Перезапустите WAMP.

Это, надеюсь, решит это.

* EDIT : сделайте то же самое @ C: \ Path \ To \ WAMP \ bin \ php \ PHPVersion \

Это то, что сработало для меня

Ответил Сорен из другого потока SO – CURL для WAMP

«Кажется, что-то есть ошибка. Если вы испытываете это на Win 7 64 бит, попробуйте установить apache addon version 2.2.9 и php addon version 5.3.1 и переключиться на те, что есть в WAMP, а затем активировать расширение CURL. для меня."

Это исправило это для меня:

Перейдите сюда:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Загрузить 'php_curl-5.3.13-VC9-x64.zip'

Остановить работу сервера WAMP

Извлеките файл «php_curl.dll».

На локальном компьютере найдите (или где будет найдена установка WAMP) c: \ wamp \ bin \ php \ php5.3.13 \ ext

Переименуйте php_curl.dll в php_curl.dll.old (или что вы выберите), а затем скопируйте новый файл в указанный выше каталог.

Перезапустить сервер WAMP

Теперь все должно работать нормально.

У меня была такая же проблема с php-5.5.26-Win32-VC11-x64 (в Windows), и я пробовал все перечисленные здесь без везения. Наконец, я получил его, добавив каталог установки PHP в Windows Path .

С PHP 5.6.9 в Windows Server Core 2012 x64 cURL не работал, а не появлялся в phpinfo, несмотря на разглашение расширения php_curl.dll в моем php.ini и перезапуск службы Apache 2.4. Добавлен путь php и путь php \ ext к пути $ evn:. Нет радости.

Исправлено: мне не нужно было загружать любой другой файл php_curl.dll и в любом случае не удалось найти его для PHP 5.6. В конечном итоге было выполнено копирование этих трех файлов в папку Apache24 \ bin, а затем перезапуск Apache:

libeay32.dll

libssh2.dll

ssleay32.dll Копирование этих данных в System или System32 не требуется.

Если проблема сохраняется после того, как вы раскомментируете модуль из обоих файлов php.ini (о том, что люди уже говорят и которые находятся в папке apache и папке php), и даже после проверки, что вы получили php_curl.dll ** на

C: \ WAMP \ Bin \ PHP \ php5.3.13 \ внутр

ВЫ ДОЛЖНЫ ПОПРОСИТЬ ЗАМЕНИТЬ ОРИГИНАЛЬНУЮ DLL, КОТОРАЯ ПРИНИМАЕТСЯ С WAMPSERVER с одним из этого веб-сайта:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Моя проблема была там! Надеюсь, поможет.