Добро пожаловать на авторский блог Авдеева Марка.

Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%

<<< Регулярные выражения в PHP || Php+Ajax полоса загрузки ProgressBar >>>

Fatal error: Call to undefined function curl_init()

05.01.2012
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 , найдя в котором закомментированную строку:

;extension=php_curl.dll

я был уверен, что в этом кроется загвоздка. Удалив в начале строки точку с запятой “;”, и попробовав обновить страницу скрипта, снова получил сообщение об ошибке. Вновь принялся за изучения php.ini и нашел еще одну интересную строку:

extension_dir = «/usr/local/php5/ext»

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()”

  1. Скачиваем пакет библиотек для расширения возможностей набора denwer.
  2. Запускаем скачанный архив, в процессе установки он самостоятельно добавит нужную php_curl.dll , а также другие отсутствующие библиотеки.
  3. Открываем директорию, в которую установлен denwer, а именно каталог с данными PHP. Обычно это директория: c:\WebServers\usr\local\php5\.
  4. Копируем из данной директории файлы ssleay32.dll и libeay32.dll , вставляем их в каталог C:\WINNT\SYSTEM32.
  5. Открываем файл C:\WebServers\usr\local\php5\php.ini находим в нём строку “;extension=php_curl.dll”, и убираем точку с запятой вначале. (Внимание! Если ты до установки расширений из пункта №1 , уже проделывал данную операцию, не поленись вновь это повторить, ибо при установки данного пакета, файл php.ini перезаписывается).
  6. Перезапускаем denwer.
  7. Радуемся работе всех необходимых функций!

Данная последовательность действий является оптимальной для решения подобной проблемы при использовании утилиты denwer. Если же вы столкнулись с Fatal error: Call to undefined function curl_init(), не спользуя денвер, то вам следует покапаться в настройках php.ini , и вероятнее всего обратиться с своему хостинг-провайдеру.

Читайте также похожие статьи:

Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.

Нравится

Комментарии

  • Денис

    Вопрос.А каким компилятором вы пользуетесь? phpDesigner хороший?

    • Пользуюсь блокнотом notepad++.
      Про phpDesigner и другие IDE ничего не знаю.

  • sina

    Я столкнулся с такой же проблемой по поводу библиотеки php_openssl.dll. Сначала попытался вставить туда библиотеку взятую из другого места и добавить строку в php.ini. Не получилось — появилось сообщение об ошибке. Потом разобрался, почему так происходит. В предыдущих версиях Denwer’а использовались версии PHP, которые компилировались на C++ версии 6, а в последнем Denwer’е, уже PHP, скомпилированный на C++ версии 9. На сайте php.net можно найти разные, в том числе и достаточно старые версии PHP, и в них указывается в номере версии либо шестёрка, либо девятка. Получается, что библиотеки от 6-х версий не подходят к 9-м. Свою проблему решил так же, как и ты — скачал дополнительные модули на сайте Denwer’а.

  • Roman

    Спасибо!

  • Лёха

    Блин, спасибо тебе чувак

  • Александр

    Спасибо огромное! Выручил

  • Алексей

    Спасибо!

  • UINCAR.ru

    В ubuntu/debian всё проще решается…
    sudo apt-get install php5-curl

  • fixbob

    Спасибо — помогло

  • RockSallana

    Каждому своё

  • Sergei

    проблема бывает в том что я только что мучался два часа с такой же ошибкой.
    фишка в том что объявив функцию в классе
    я ее вызываю через $method(); а надо вызывать через $this->$method();

    1
    2
    $method(); //Ошибка
    $this->$method();// Нет ошибки
    • Vasya

      Sergei, надо вызивать без бакса)
      так: method();

  • Оставить комментарий

    Подписаться на комментарии к этой статье по RSS

    Размещение статей и контекстных ссылок
    Бесплатная CMS для вашего магазина
    Яндекс.Метрика