Как заставить CURL работать с PHP на Windows? (WAMP) - PullRequest
29 голосов
/ 28 августа 2009

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

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


Я пытаюсь заставить CURL работать над установкой PHP для Windows (версия 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
  • Скопировано 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/"

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

Ответы [ 7 ]

9 голосов
/ 28 августа 2009

Вам не нужно перезагружать компьютер, просто перезапустите 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 (запуск, запуск, eventvwr.msc /s).

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

7 голосов
/ 28 августа 2009

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

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

Надеемся, это решит проблему.

* РЕДАКТИРОВАНИЕ : сделать то же самое @ C: \ Path \ To \ WAMP \ bin \ php \ PHPVersion \

1 голос
/ 02 января 2016

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

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

libeay32.dll

libssh2.dll

ssleay32.dll Копировать их в System или System32 не нужно.

1 голос
/ 02 июля 2015

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

1 голос
/ 09 июля 2013

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

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

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

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

1 голос
/ 06 октября 2012

Вот что у меня сработало

Ответ Soren из другого потока SO - CURL для WAMP

"Кажется, где-то есть ошибка. Если вы испытываете это на 64-битной Windows 7, попробуйте установить Apache Addon версии 2.2.9 и php Addon версии 5.3.1 и переключиться на WAMP и затем активировать расширение CURL . Это сработало для меня. "

0 голосов
/ 11 декабря 2013

Если проблема не устраняется после того, как вы раскомментируете модуль из обоих файлов 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/

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

...