Я уверен, что бывало, так вот сегодня мне пришлось потратить не мало времени на устранение ошибки такого содержания 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()”
- Скачиваем пакет библиотек для расширения возможностей набора 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 , и вероятнее всего обратиться с своему хостинг-провайдеру.
|