Продолжает возникать ошибка “Вызов несуществующей функции curl_init()”

Вопрос или проблема

Я использую PHP 5.6. Я уже установил curl с помощью следующих команд:

sudo apt-get install php-curl
sudo apt-get install php5-curl

Но даже после этого я продолжаю получать ошибку:

Вызов неопределенной функции curl_init()

Тем не менее, когда я locate curl.ini, он показывает следующее:

/etc/php5/apache2/conf.d/20-curl.ini
/etc/php5/cgi/conf.d/20-curl.ini
/etc/php5/cli/conf.d/20-curl.ini
/etc/php5/fpm/conf.d/20-curl.ini
/etc/php5/mods-available/curl.ini
/usr/share/php5/curl/curl.ini
/var/lib/ucf/cache/:etc:php5:mods-available:curl.ini

И когда я locate curl.so, он показывает следующее:

/usr/lib/php5/20131226/curl.so
/usr/lib/x86_64-linux-gnu/libcurl.so.3
/usr/lib/x86_64-linux-gnu/libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0

Поэтому я изменил строку в /etc/php5/mods-available/curl.ini с:

extension=curl.so

На:

extension=/usr/lib/php5/20131226/curl.so

Но я по-прежнему получаю ошибку.

В чем дело?

Попробуйте сделать эти две вещи:

sudo apt-get install php5.6-curl

Создайте страницу, чтобы показать вам <?php phpinfo(); и убедитесь, что вы используете php 5.6. У вас установлено несколько версий php? Как только вы выясните, какая именно версия у вас используется, установите curl для нее: apt-get install php<VERSION>-curl -y

Ответ или решение

Ошибка "Call to undefined function curl_init()" в PHP может возникнуть по ряду причин, даже если вы установили расширение cURL. Давайте рассмотрим возможные шаги для диагностики и решения этой проблемы.

Шаг 1: Убедитесь, что cURL действительно установлен

Вы уже выполнили команду установки sudo apt-get install php-curl и sudo apt-get install php5-curl. Тем не менее, чтобы убедиться, что расширение установлено корректно, выполните следующую команду:

sudo apt-get install php5.6-curl

Это важно, так как существует вероятность, что вы используете несколько версий PHP, и cURL может быть установлен только для одной из них.

Шаг 2: Проверьте активные модули PHP

После установки модуля cURL важно проверить, загружается ли он. Создайте файл info.php в корневом каталоге вашего веб-сервера и вставьте в него следующий код:

<?php phpinfo(); ?>

Затем откройте этот файл в вашем веб-браузере (например, http://yourdomain.com/info.php). Найдите раздел, связанный с cURL. Если его нет, значит, расширение не загружается. Это может быть вызвано проблемами в конфигурации.

Шаг 3: Проверка конфигурационных файлов

Убедитесь, что файл /etc/php5/mods-available/curl.ini содержит строку:

extension=curl.so

Если вы изменили её на полный путь, это может привести к конфликтам. Поэтому верните исходное значение.

Шаг 4: Убедитесь, что правильно настроен веб-сервер

Если вы используете Apache, после внесения изменений в конфигурацию PHP перезапустите сервер для применения изменений:

sudo service apache2 restart

Для Nginx выполните:

sudo service nginx restart

Шаг 5: Проверка разных версий PHP

Возможно, у вас установлено несколько версий PHP, и ваш веб-сервер использует одну из них, в то время как команда CLI (интерфейс командной строки) обращается к другой. Выполните следующую команду, чтобы проверить версию PHP, используемую через терминал:

php -v

Сравните её с той, которую показывает phpinfo() в вашем браузере. Если версии различаются, установите cURL для нужной версии с помощью команды:

sudo apt-get install php<VERSION>-curl -y

Заключение

После выполнения вышеописанных шагов ошибка "Call to undefined function curl_init()" должна исчезнуть, если cURL правильно установлен и загружается. Если проблема сохраняется, проверьте логи вашего веб-сервера на наличие дополнительных сообщений об ошибках, которые могут указать на источник проблемы.

Если потребуется дальнейшая помощь, не стесняйтесь обращаться. Успехов в решении проблемы!

Оцените материал
Добавить комментарий

Капча загружается...