Не установлен 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; Покупка и настройка оборудования и многое другое.
Установка PHP и модулей на Ubuntu/Debian
Установка PHP 5 как модуля Apache:
Установка PHP 7 как модуля Apache:
Установка PHP 5 как PHP-FPM:
Установка PHP 7 как PHP-FPM
Модули
В Debian и Ubuntu зачастую установка модулей PHP не требует каких-то сложных манипуляций. Для того, чтобы посмотреть, что Вы можете поставить прямо сейчас, нужно сделать:
Давайте для примера установим GD для работы с изображениями:
Либо php-fpm, смотря, что используете Вы:
Чтобы посмотреть список модулей php, который прямо сейчас подключен, можно запустить:
Nginx, Php-Fpm и что это вообще?
Почему timeout для curl в php необходим
Угадайте самый медленный фреймворк. И это не Laravel
Есть распространенное мнение, что Laravel почти самый медленный фреймворк, что даже его название нужно читать медленно и только одним пользователем на 1 ядро CPU. Но к счастью, это не так
Curl в PHP
Вводная статья о том, как использовать сессии в PHP
IoT Highload: особенности и подводные камни
Особенности серверных приложений, работающих с сетью IoT-устройств на практике и в теории
Nginx, Php-Fpm и что это вообще?
Почему timeout для curl в php необходим
Угадайте самый медленный фреймворк. И это не Laravel
Есть распространенное мнение, что Laravel почти самый медленный фреймворк, что даже его название нужно читать медленно и только одним пользователем на 1 ядро CPU. Но к счастью, это не так
Curl в PHP
Вводная статья о том, как использовать сессии в PHP
IoT Highload: особенности и подводные камни
Особенности серверных приложений, работающих с сетью IoT-устройств на практике и в теории
curl — модули PHP не загружаются после установки PHP 7 на мой сервер
Я установил PHP 7 на свой сервер (в результате у меня нет / etc / php5 и /etc/php/7.0). Когда я запускаю свое веб-приложение, я не вижу ни одного из моих предыдущих CURL (или разветвлений).
сначала я получил это сообщение об ошибке:
Сообщение: вызов неопределенной функции curl_init ()
и после установки php7-curl я включаю его — одобрено для функции info () и этот тестовый код:
но при наличии фактического CURL в моем коде я получаю эту ошибку:
Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку
‘/usr/lib/php/20151012/php_curl.dll’ —
/usr/lib/php/20151012/php_curl.dll: не удается открыть файл общего объекта: нет
такой файл или каталог в Unknown в строке 0
РЕДАКТИРОВАТЬ 04.05.2016:
Решение
У меня была именно эта проблема.
Я только что провел последние несколько часов, пытаясь исправить некоторые вещи, и в спешке я по какой-то причине включил эту строку:
Очевидно, что это имеет смысл 0, как кто-то сказал, но сообщение об ошибке странно после того, как вы это сделаете. Бег apt-get dist-upgrade НЕ решил проблему.
Итак, вырвав еще несколько волос и перечитав этот пост 100 раз,
Я только что прокомментировал это обратно
и да, проблема решена.
Так что ОП, должно быть, сделал то, что я сделал … пью пиво, работая
Другие решения
Бег apt-get dist-upgrade исправлены все проблемы 🙂
В моем случае, чтобы заставить работать curl:
Установка curl в Ubuntu
Если установочный скрипт выдаёт ошибку: bash: curl: command not found или bash: curl: команда не найдена. Это значит что такой команды нет в вашей системе. Решение простое – установить утилиту curl. Эта утилита для скачивания файлов хоть и не так популярна, как wget, но может предоставить больше возможностей, а также имеет в своём составе библиотеку, которую можно подключить к другим программам.
Мы рассмотрим как установить curl в Ubuntu 20.04. Но инструкция будет актуальна и для более новых или старых версий дистрибутива.
Установка curl в Ubuntu
Представим вполне реальную ситуацию. Вы решили установить приложение с помощью скрипта .sh. Для скачивания скрипта предлагают использовать команду curl, она также может оказаться и в самом скрипте. Однако по умолчанию эта утилита не установлена в Ubuntu 20.04, поэтому при попытке запуска скрипта вы увидите ошибку curl: команда не найдена. А если вы попробуете запустить непосредственно саму утилиту, то сообщение будет выглядеть следующим образом: bash: /usr/bin/curl: Нет такого файла или каталога. Для установки curl следует использовать такие команды:
sudo apt install curl
После установки скрипт, содержащий команду curl, должен заработать. Для того чтобы узнать версию утилиты выполните:
Эта команда может быть важна, так как программа активно развивается и каждый раз исправляются десятки ошибок и добавляются новые функции. Для того чтобы скачать файл используйте такую команду:
О других аргументах и способах их использования можете узнать в нашем материале.
Выводы
Утилита curl получила широкое распространение. Она доступна на всех актуальных настольных операционных системах. В Ubuntu 20.04 утилита не предустановлена, но доступна в репозитории и теперь вы знаете как выполняется установка curl Ubuntu.
Описанная ошибка чаще всего встречается только на недавно установленном дистрибутиве. Так как библиотека libcurl используется большим количеством приложений и рано или поздно будет установлена в вашей системе вместе с curl.
Как заставить 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 С одним из этот сайт:
моя проблема была там! Надеюсь, это поможет.