Расширение php curl необходимо установить и включить
Решение проблемы с работой модуля cURL на PHP 5.6.1, PHP 5.5.17 и выше (на Windows)
Те, кто использует cURL, после обновлений на 5.6.1, 5.5.17 столкнулись с тем, что модуль cURL перестал работать. Проблема с тех пор не исчезла. Даже в последней на сегодняшней момент версии PHP 5.6.4 эта проблема сохранилась.
Как узнать, работает ли у вас cURL?
Создайте php файл и скопируйте туда:
За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.
На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.
Откройте его с сервера. Если на выходе что-то вроде:
Значит с cURL всё в порядке, если вместо этого ошибка PHP, значит проблема существует.
Во-первых, конечно же проверьте файл php.ini, найдите там строчку
И убедитесь, что перед ней не стоит точка с запятой.
Если всё так, а cURL не работает, то можно провести ещё один тест, для подтверждения необычности ситуации. Создайте ещё один php файл с содержанием:
Через поиск в браузере найдите cURL, если совпадение всего одно, значит модуль cURL не загружен:
При этом и Apache и PHP работают как обычно.
Вуаля, секция cURL на месте.
Почему так? Откуда взялась эта проблема? Ответа на этот вопрос нет, хотя уже описан механизм её возникновения.
Проблема связана, вроде, с тем, что 5.6.1 должен был выпущен с обновлённым libcurl 7.38.0. Но это доподлинно не известно, авторы PHP кивают на Apache, мол это там какие-то баги.
Механизм возникновения проблемы: если в системную PATH не включён каталог PHP, то когда служба Apache запускается, она не способна найти новый dll (libssh2.dll), который является зависимостью для php_curl.
Соответствующие баг репорты:
Fatal error: Call to undefined function curl_multi_init() in …
Вообще, проблемы с cURL на PHP были, кажется, если не всегда, то очень часто. В процессе гугления своей проблемы, я натыкался на темы, некоторым из которых было больше чем дюжина лет.
Кроме этого, гугление дало ещё несколько выводов:
В Интернете достаточно «инструкций для дибилов», в которых подробно, с картинками, рассказывают как раскомментировать строку extension=php_curl.dll в файле php.ini.
На официальном сайте PHP, в разделе по установке cURL, есть всего два предложения относительно системы Windows:
Для работы с этим модулем в Windows файлы libeay32.dll и ssleay32.dll должны существовать в системной переменной окружения PATH. Вам не требуется файл libcurl.dll с сайта cURL.
Я прочитал их десяток раз. Переключился на английский язык и прочитал ещё несколько раз на английском. С каждым разом всё больше убеждаясь, что эти два предложения написали животные, или кто-то просто попрыгал попой на клавиатуре — я не понимаю их смысла.
Ещё есть несколько каких-то сумасшедших советов и инструкций (некоторые я успел даже опробовать).
На сайте баг репортов ПХП я уже вплотную подобрался к разгадке, что нужно в системную переменную PATH включить каталог с PHP.
В общем, для тех, у кого проблема с cURL и кому нужно «в системную переменную PATH включить каталог с PHP», перейдите к уже названной выше инструкции http://php.net/manual/ru/faq.installation.php#faq.installation.addtopath. Там всё просто, а, главное, человеческим языком написано, что нужно сделать.
1 октября запускаем «Paranoid Rebirth» — курс по защите приватности от команды Кодебай
Установка операционной системы; Настройка хоста; Настройка сети; Программы для безопасного общения; Работа с VPS сервером; Настройка виртуальных машин VBOX, QeMU; Покупка и настройка оборудования и многое другое.
Как заставить CURL работать с PHP на Windows? (WAMP)
обновление: проблема, похоже, была повреждена DLL где-то в моей установке PHP или, возможно, ошибка в PHP 5.2.9 на Win2k. Я загрузил дистрибутив Windows (только двоичные файлы) PHP 5.2.10 из php.net и добыл это для моего c:PHP справочник. После этого все работало нормально.
обновление 2: я уничтожил все, что я пробовал ранее (все из маркированного списка ниже),за исключением что я оставил » extension=php_curl.dll » uncommented в моем php.ini-файл. Оказывается, это все, что вам нужно сделать при правильной установке.
я пытаюсь заставить CURL работать над установкой Windows PHP (версия 5.2.9-2), и я нахожусь в конце. Я нашел страница установки PHP CURL, это так вопрос какие ссылки на этой странице и это так вопрос. Я пробовал большинство предложений на всех этих страницах, но Я все еще получаю ошибку. Вот моя очень простая тестовая страница:
критическая ошибка: вызов неопределенной функции curl_init() в C:ApacheRootcurltest.в PHP on line 2
в моем журнале ошибок Apache, я получаю это каждый раз, когда сервер начинает:
я сделал следующий:
у меня также перезагрузил машину (несколько раз, на самом деле. ).
7 ответов
вам не нужно перезагружать компьютер, просто перезапустите apache, и модуль php прочитает новый ini.
Вы изменили правильный php.Ини? В случае сомнений
есть что-то в ошибке.журнал apache, который указывает, что что-то пошло не так При загрузке php и php_curl.dll файлы?
вы запустили apache как службу win32? Если вы попытаетесь запустить его как консольное приложение. Сообщение об ошибке появится на консоли тогда. Или запустите его как сервис и посмотрите на ошибку.файл журнала и журнал событий windows (запуск, запуск, eventvwr.msc /s ).
edit:
«Указанная процедура не найдена»
Вам нужна dll, совместимая с вашей версией php и сборкой. Что именно вы установили и где вы это взяли?
это, надеюсь, решит проблему.
* EDIT: сделайте то же самое @ C:\Path\To\WAMP\bin\php\PHPVersion\
Это то, что сработало для меня
«кажется, где-то есть ошибка. Если вы испытываете это на 64-битном Win 7, попробуйте установить Apache addon версии 2.2.9 и php addon версии 5.3.1 и переключиться на WAMP, а затем активировать расширение CURL. Это сработало для меня.»
это исправило его для меня:
остановить сервер WAMP от запуска
извлеките файл ‘ php_curl.в DLL’.
на локальном компьютере перейдите к (или где находится установка WAMP) c:\wamp\bin\php\php5.3.13\ext
переименовать php_curl.dll для php_curl.файл DLL.старый (или что вы выбираете), а затем скопируйте новый файл в вышеуказанный каталог.
перезапустить сервер WAMP
все должно работать нормально теперь.
У меня была такая же проблема с php-5.5.26-Win32-VC11-x64 (в Windows), и я попробовал все, что здесь перечислено, без везения. Наконец, я получил его работу, добавив каталог установки PHP В Windows Path.
Fix: мне не нужно было загружать любой другой php_curl.dll-файл и не смог найти его для PHP 5.6 в любом случае. Наконец, удалось скопировать эти три файла в папку Apache24\bin, а затем перезапустить Апач:
ssleay32.файл DLL Копирование их в System или System32 не требовалось.
Если проблема сохраняется после раскомментируйте модуль с версиями PHP.ini-файлы (о которых люди уже говорят и которые находятся в папке apache и папке php) и даже после того, как вы проверите, что у вас есть php_curl.dll * * at
ВЫ ДОЛЖНЫ ПОПЫТАТЬСЯ ЗАМЕНИТЬ ОРИГИНАЛЬНУЮ DLL, КОТОРАЯ ПОСТАВЛЯЕТСЯ С WAMPSERVER С одним из этот сайт:
моя проблема была там! Надеюсь, это поможет.
PHP CURL – функции и примеры использования
Предлагаю немного поговорить о языке программирования PHP, а конкретно затронуть тему расширения CURL, т.е. возможность взаимодействовать с различными серверами по различным протоколам из самого скрипта PHP.
Перед тем как приступить к рассмотрению curl хочу напомнить, что язык PHP мы с Вами уже затрагивали, например, в материале про выгрузку в Excel на PHP или возможность аутентификации на PHP, а теперь давайте поговорим о возможности посылать запросы на PHP.
Что такое CURL?
CURL – это библиотека функций PHP, с помощью которой можно посылать запросы, например, HTTP, из PHP скрипта. CURL поддерживает такие протоколы как HTTP, HTTPS, FTP и другие. Посылать HTTP запросы можно методами GET, POST, PUT.
CURL может пригодиться в случаях когда необходимо вызвать удаленный скрипт и получить результат или просто сохранить HTML код вызываемой страницы, в общем каждый может найти свое применение но смысл один это то что можно послать запросы в процессе выполнения скрипта.
Подключение библиотеки CURL в PHP
Для того чтобы использовать библиотеку CURL ее соответственно нужно подключить.
Примечание! В качестве примера мы будем использовать PHP 5.4.39 на Windows 7, а в качестве Web-сервера у нас будет выступать Apache 2.2.22.
Первое что нужно сделать, это скопировать библиотеки ssleay32.dll, libeay32.dll, libssh2.dll они расположены в директории с PHP, в системный каталог Windows, а именно в C:\Windows\System32.
Затем в php.ini подключить библиотеку php_curl.dll, т.е. раскомментировать следующую строку
Библиотека не подключена
Все, перезапускаем Apache, вызываем функцию phpinfo() и в случае успешного подключения у Вас должен появиться раздел curl
Если его нет, то это означает только одно, что библиотека не загрузилась, самая распространенная причина этого небыли скопированы вышеперечисленные DLL в системный каталог Windows.
Пример CURL – запрашиваем удаленную страницу для вывода на экран
В данном примере мы просто запросим удаленную страницу по протоколу HTTP методом GET и выведем ее содержимое на экран.
У нас имеется каталог test в нем 2 PHP файла это test_curl.php и test.php, где test_curl.php и есть скрипт где мы будем использовать curl, а test.php удаленный скрипт который мы будем вызывать. Код я подробно прокомментировал.
Код test_curl.php
Код test.php
В итоге если вы запустите test_curl.php у Вас выведется на экран надпись «Заголовок 1», можете поэкспериментировать с передачей параметров id (в данном случае 2 или 3).
Пример CURL – вызываем удаленный скрипт и получаем результат
Сейчас давайте попробуем вызвать скрипт и получить результат, для того чтобы потом его обработать, для примера давайте использовать метод POST. Названия файлов оставим такими же.
Код test_curl.php
Код test.php
И если мы запустим test_curl.php то на экран у нас выведется 111, т.е. 1.11 полученное в результате обращения к удаленному скрипту, умноженное на 100.
А теперь давайте поговорим о функциях и константах к ним.
Часто используемые функции CURL и константы
Подробнее о функциях CURL и константах к ним можете посмотреть на официальном сайте PHP — php.net
На этом все, для начинающих я думаю достаточно Удачи!
Установка расширения curl на php
для просмотра модулей которые могу установить пишу:
выпадает список, смотрю есть ли мой(php5-curl) в нем.
смотрю есть, пишу:
что от меня требуется тут сделать подскажите пожалуйста чтобы установился модуль, спасибо.
2 ответа 2
Когда я отписывал что идет настройка «Настраивается пакет ttf-mscorefonts-installer» и «висит» это окно, там была кнопка «Ok» которая была неактивной и которая не нажималась. Я думал что это нужно просто обождать.
Оказалось что нужно было перейти на эту кнопку из клавиатуры «пробелом» и нажать окей. После этого установка заняла минуту от силы.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками php ubuntu apache или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.9.17.40238
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как установить cURL на Windows?
для установки и настройки apache получить РНР5 пакеты и достань свертки.
я запускаю apache и запускаю PHP-скрипт. не проблема. но когда я запускаю PHP-скрипт с curl, это не удается.
возвращает: **Call to undefined function curl_version() in C:Program FilesApache Software FoundationApache2.2htdocstesting.php on line 5**
в которой строка 5 называется curl_init()
я вывожу php-i чтобы увидеть, вызывается ли правильный путь к расширению. Правильно установлено:
Я даже пытался запустить curl_version() но все же возникает такая же ошибка.
Похоже, PHP не может найти расширение CURL, но php.ini (а также php-i) показывает, что он установлен.
причина, по которой мне нужно использовать CURL, заключается в том, что это требование из моего проекта. Так что я могу только придерживайся этого. Программе XAMPP. как это работает в Windows? Есть ли сайт, который вы можете порекомендовать? Спасибо.
Я пробовал много вещей по установке cURL и проверить все, но все же, я все еще кружусь вокруг проблемы и понятия не имею, что происходит.
сервер Apache использует правильный PHP.ini. и PHP.ini имеет правильный extension_dir и extension=php_curl.файл DLL Я понятия не имею, почему это не работает. даже я следую за каждым шагом для настройки вверх. 🙁
12 ответов
вы, вероятно, ошибаетесь, что PHP.ini вам нужно отредактировать. сначала добавьте PHPinfo (); к информации.php и запустите его из своего браузера.
запишите путь к каталогу PHP ini, который вы видите в списке переменных! Вероятно, вы заметите, что он отличается от вашего файла PHP-CLI ini.
выполните следующие действия для установки curl:
выберите операционную систему в раскрывающемся списке: Windows / Win32 или Win 64. Нажмите Выбрать!
для Win 32 выберите, будете ли вы использовать curl в командной строке Windows (Generic) или в терминале Cygwin (cygwin). Для Win 64 выберите, будете ли вы использовать curl в командной строке Windows (Generic) или MinGW (MinGW64). Нажмите Выбрать!
при необходимости выберите операционную систему Windows. Заканчивать.
нажмите Загрузить для версии, которая имеет SSL включен или отключен
откройте загруженный zip-файл. Извлеките файлы в удобное для поиска место, например C:\Program файлы.
тестирование curl
открыть вверх по терминалу командной строки Windows. (В меню Пуск выберите пункт Выполнить, затем введите cmd.)
установите путь для включения каталога, в который вы помещаете curl.исполняемый. Например, если вы положили его в C:\Program Files\curl, затем вы должны ввести следующую команду: задать путь=%path%;»c:\Program Files\curl»
Примечание: Вы также можете напрямую скопировать завиток.exe файл любой существующий путь в вашем пути
Я использую XAMPP, в котором есть несколько php.ini-файл.
Вы можете найти строку в PHP.ini-файл: ;extension=php_curl.dll
просьба удалить ; в начале этой линии. И вам может потребоваться перезапустить сервер Apache.
У меня также были проблемы с этим. После всех этих шагов сделаны правильно и некоторые исправлены недоразумения (нет extensions_dir но extension_dir, и нет сеансов.save_path но сессия.save_path) ничего не работает.
наконец я нашел эту записку на php.net:
Примечание: Примечание Для пользователей Win32: Чтобы включить этот модуль в среде Windows, libeay32.dll и ssleay32.dll должна присутствовать в вашем пути. Вам не нужно libcurl использует.dll из завитка сайт.
недавно я установил Curl на PHP5 для Windows Vista. Я сделал не включить библиотеку CURL, когда я изначально установил PHP5, поэтому ничего о Curl не появлялось в phpinfo () или php.ini.
Я установил CURL, повторно запустив установщик PHP5 (php-5.2.8-win32-installer.msi для меня) и выбор «изменить». Затем я добавил компонент CURL. Перезапустите Apache, и CURL должен работать. CURL появится в phpinfo (). Кроме того, вот пример сценария, который вы можете запустить убедитесь, что он работает. Он отображает RSS-канал от Google:
Примечание: Примечание Для пользователей Win32 Чтобы включить этот модуль (cURL) в среде Windows, libeay32.dll и ssleay32.dll должна присутствовать в вашем пути. Вам не нужно libcurl использует.dll с сайта cURL.
эта записка решила мою проблему. Думал поделиться. libeay32.библиотеки DLL & ssleay.dll вы найдете в папке установки php.
еще один ответ для других людей, у которых была эта проблема
когда вы не комментируете строку расширения, измените ее на:
или расположение папки расширения, для меня это не сработало, пока я не сделал это
Да, есть 3 php.ini-файлы после установки, один для php4, один для php5, и один для apache. Пожалуйста, измените их соответствующим образом.
Я согласен с Erroid, вы должны добавить каталог PHP в среду PATH.
это сработало для меня. Спасибо.
в моем apache я должен указать:
и для php.ini, вместо использования php.ini_recommend, используйте php.ini_dist для настройки моего php.ini.
затем убедитесь, что движок php включен. тогда это работает сейчас. Спасибо всем.
вы также можете использовать CygWin и установите пакет cURL. Он работает очень хорошо и безупречно!!