Как мне запустить php curl на моем сервере разработки apache2.x?

#php #windows #apache #windows-7 #configuration

#php #Windows #apache #windows-7 #конфигурация

Вопрос:

Прежде чем я начну, я добавлю, что я потратил много времени на поиск в Google и попробовал несколько решений, ни одно из которых не сработало.

Информация о системе:

Windows 7 Professional (x86, 32 разрядная версия)

Apache2 запущен и запущен C:Program ФайлыApache Software FoundationApache2.2

PHP 5.3.8 C:Program FilesPHP также работает. вручную настроенный httpd.conf для включения php, обратите внимание, что php работает, за исключением curl.

Я включил curl в моем php.ini C:Program FilesPHPphp.ini

Это ближе к концу моего php.ini

 [PHP]   
extension_dir = "ext"  
[PHP_CURL]  
extension=php_curl.dll
  

Также обратите внимание, что файл C:Program FilesPHPextphp_curl.dll существует!

Я перезапустил сервер apache, но curl по-прежнему не работает.

быстрый test.php файл:

 <?php 

$curl_conn = curl_init();

?>
  

обратите внимание, что у меня есть как начальный, так и конечный теги php, корректный stackoverflow просто не показывает начальный тег php.
выдает:
Неустранимая ошибка: вызов неопределенной функции curl_init() в E:pathto_projecttest.php в строке 3

Сейчас я потратил 3 часа, пытаясь заставить curl работать, Google не помог, большинство решений, похоже, связаны с тем, чтобы убедиться, что строка extension=module в php.ini не закомментирована, и, как вы можете видеть выше, она не закомментирована, так что советы, похоже, не работают.помогите мне.

Любые идеи будут оценены, поскольку это довольно неприятно. Спасибо!

Комментарии:

1. Попробуйте посмотреть, поможет ли это руководство: tonyspencer.com/2003/10/22/curl-with-php-and-apache-on-windows

2. попробуйте: extension_dir = "C:Program FilesPHPext"

Ответ №1:

Вы должны добавить «C:PHP » к переменной окружения PATH сервера:

  1. Щелкните правой кнопкой мыши на моем компьютере, выберите Свойства
  2. Перейдите на вкладку Дополнительно
  3. Нажмите кнопку Переменные среды
  4. Дважды щелкните переменную Path в списке системных переменных.
  5. Либо добавить «C:PHP ; » к началу или «;C:PHP » до конца (без кавычек, не оба).
  6. Перезагрузите компьютер, чтобы он вступил в силу.

Благодаря:

http://www.webcheatsheet.com/PHP/install_and_configure.php

Ответ №2:

Я знаю, что этот поток уже давно закрыт, но для тех, кто, как и я, впоследствии сталкивается с этой проблемой, для меня ответом оказалось, что загружалась ДРУГАЯ копия php.ini файла, чем я думал. Я редактировал php.ini файл в своем каталоге PHP 5.4.3, и в каталоге Apache есть еще одна копия php.ini файла, идентичная, насколько я мог судить с первого взгляда.

Удаление комментариев к extension=php_curl.dll строке В НУЖНОМ ФАЙЛЕ, папке Apache, включило для меня функцию curl.

Джефф С.

Ответ №3:

Вы скопировали файлы зависимостей cURL:

   libeay32.dll
  ssleay32.dll
  

в C:WindowsSystem32 папку?

Возможно, PHP не может найти эти два файла для запуска расширения cURL.

Комментарии:

1. Я пытаюсь сделать так, как вы предлагаете, но это смешно, ssleay32.dll не находится в двоичном пакете lib curl на curl.haxx.se , но я скопировал libeay32.dll в C:Windows . Я перезапустил apache, но это не сработало. Я также скопировал libssl32.dll из пакета libcurl в C:Windows предполагая, что это может быть заменой ssleay32.dll в более поздних версиях curl. Но все равно нет кости!

2. оба файла должны находиться в корневой папке PHP. Загляните на страницу сценария phpinfo(), чтобы узнать, загружен ли cURL, а также проверьте файл журнала ошибок apache, чтобы увидеть, есть ли какое-либо соответствующее предупреждение PHP.

3. Я не знаю, почему я не проверял это раньше, но на самом деле, оба libeay32.dll и ssleay32.dll находятся в корне моей установки php. Я проверил журнал ошибок apache и доступ. файл журнала. Единственная ссылка на php — «[Сб, 15 октября 13:49:10 2011] [уведомление] Настроен Apache / 2.2.19 (Win32) PHP / 5.3.8 — возобновление нормальной работы» Однако я все еще не могу вызвать curl с php. Я получаю ту же ошибку, что и в моем исходном сообщении.

4. Я попытался удалить ssleay32.dll из C:WindowsSystem32 папки, и я получил ту же ошибку, что и вы: Fatal error: Call to undefined function curl_init() in ... , но это работает, когда я копирую dll-файл обратно и перезапускаю Apache. Хотя оба DLL-файла находятся в папке PHP, вам необходимо вручную скопировать их в System32 папку. Посмотрите в php.info() скрипте, чтобы убедиться, что cURL он загружен правильно.