#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 сервера:
- Щелкните правой кнопкой мыши на моем компьютере, выберите Свойства
- Перейдите на вкладку Дополнительно
- Нажмите кнопку Переменные среды
- Дважды щелкните переменную Path в списке системных переменных.
- Либо добавить «C:PHP ; » к началу или «;C: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
он загружен правильно.