Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%
Fatal error: Call to undefined function curl_init()
Здравствуй уважаемый читатель блога LifeExample, у тебя бывало такое, когда знаешь, что код должен работать, но вместо ожидаемого результата компилятор говорит об обнаруженной фатальной ошибке? Я уверен, что бывало, так вот сегодня мне пришлось потратить не мало времени на устранение ошибки такого содержания Fatal error: Call to undefined function curl_init() , которое гласит о том, что функция curl_init() неизвестна компилятору, и нигде не определенна. Такая ошибка вызвала небольшое удивление, ибо код скрипта в котором содержится вызов curl_init() использовался мной на других хостингах без проблем, что позволило мне предположить о не правильности настроек файла php.ini.
Стоит отметить, что локальный хостинг на котором проявилась данная ошибка, организован с помощью набора дистрибутивов Denwer, достаточно популярном инструменте, начинающих веб разработчиков.
Первая самостоятельная попытка решения проблемы Fatal error: Call to undefined function curl_init() не увенчалась успехом. Первым действием был анализ файла php.ini , найдя в котором закомментированную строку:
я был уверен, что в этом кроется загвоздка. Удалив в начале строки точку с запятой “;”, и попробовав обновить страницу скрипта, снова получил сообщение об ошибке. Вновь принялся за изучения php.ini и нашел еще одну интересную строку:
Cодержание, которой говорит php компилятору, о том, в какой директории лежат все подключаемые dll библиотеки. Перейдя в директорию с удивлением обнаружил, отсутствие необходимого файла php_curl.dll. Поискав по просторам интернета, все таки нашел отсутствующую библиотеку php_curl.dll и загрузил ее в /usr/local/php5/ext . Как ни странно, но результата это не дало, вновь пришлось лицезреть сообщение: Fatal error: Call to undefined function curl_init().
Перечитав кучу форумов стал опускать руки, и уже хотел без помощи денвера самостоятельно поднять связку Apache, PHP и MySQL , дабы иметь полноценный комплект dll библиотек, включая и необходимую php_curl.dll , к счастью мне вовремя подвернулась правильная последовательность выполнения действий для решения данной задачи.
Исправление ошибки “Fatal error: Call to undefined function curl_init()”
- Скачиваем для расширения возможностей набора denwer.
- Запускаем скачанный архив, в процессе установки он самостоятельно добавит нужную php_curl.dll , а также другие отсутствующие библиотеки.
- Открываем директорию, в которую установлен denwer, а именно каталог с данными PHP. Обычно это директория: c:\WebServers\usr\local\php5\.
- Копируем из данной директории файлы ssleay32.dll и libeay32.dll , вставляем их в каталог C:\WINNT\SYSTEM32.
- Открываем файл C:\WebServers\usr\local\php5\php.ini находим в нём строку “;extension=php_curl.dll”, и убираем точку с запятой вначале. (Внимание! Если ты до установки расширений из пункта №1 , уже проделывал данную операцию, не поленись вновь это повторить, ибо при установки данного пакета, файл php.ini перезаписывается).
- Перезапускаем denwer.
- Радуемся работе всех необходимых функций!
Данная последовательность действий является оптимальной для решения подобной проблемы при использовании утилиты denwer. Если же вы столкнулись с Fatal error: Call to undefined function curl_init(), не спользуя денвер, то вам следует покапаться в настройках php.ini , и вероятнее всего обратиться с своему хостинг-провайдеру.
Читайте также похожие статьи:
Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.


Комментарии
Вопрос.А каким компилятором вы пользуетесь? phpDesigner хороший?
Пользуюсь блокнотом notepad++.
Про phpDesigner и другие IDE ничего не знаю.
Я столкнулся с такой же проблемой по поводу библиотеки php_openssl.dll. Сначала попытался вставить туда библиотеку взятую из другого места и добавить строку в php.ini. Не получилось — появилось сообщение об ошибке. Потом разобрался, почему так происходит. В предыдущих версиях Denwer’а использовались версии PHP, которые компилировались на C++ версии 6, а в последнем Denwer’е, уже PHP, скомпилированный на C++ версии 9. На сайте php.net можно найти разные, в том числе и достаточно старые версии PHP, и в них указывается в номере версии либо шестёрка, либо девятка. Получается, что библиотеки от 6-х версий не подходят к 9-м. Свою проблему решил так же, как и ты — скачал дополнительные модули на сайте Denwer’а.
Спасибо!
Блин, спасибо тебе чувак
Пожалуйста )
Спасибо огромное! Выручил
Спасибо!
В ubuntu/debian всё проще решается…
sudo apt-get install php5-curl
Спасибо — помогло
Каждому своё
проблема бывает в том что я только что мучался два часа с такой же ошибкой.
фишка в том что объявив функцию в классе
я ее вызываю через $method(); а надо вызывать через $this->$method();
2
$this->$method();// Нет ошибки
Sergei, надо вызивать без бакса)
так: method();
Спасибо!
Мне помогло добавление в системную переменную PATH пути к директории интерпретатора PHP. Источник: Функция Curl_init