Подтвердить что ты не робот

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

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

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


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

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

Это дает мне:

Неустранимая ошибка: вызов функции undefined 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/"

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

4b9b3361

Ответ 1

Вам не нужно перезагружать компьютер, просто перезапустите 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 и ее сборкой. Точно, что вы установили и откуда вы его взяли?

Ответ 2

Попробуйте следующее:

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

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

* EDIT: выполните то же самое @C:\Path\To\WAMP\bin\php\PHPVersion\

Ответ 3

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

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

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

Ответ 4

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

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

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

Все должно работать нормально.

Ответ 5

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

Ответ 6

С 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 не требуется.

Ответ 7

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

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