У меня установлен cURL на Ubuntu 16 с PHP 7, но я по-прежнему вызываю неопределенную функцию curl_init ()

Я сделал sudo apt-get установить curl, sudo apt-get php5-curl, sudo apt-get php-curl, но я получаю неопределенную функцию для curl_init ()

Кто-нибудь знает какие-либо решения для этого?

Вот мой код PHP.

<?php
// create curl resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, "example.com");

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
$output = curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);
?>

4

Решение

Проверьте, какая версия PHP используется Apache, используя phpinfo(); функция.

Проверка важна, потому что вы могли перейти на более низкую версию по любой причине (как это было в моем случае).

Теперь из командной строки запустите эту команду для установки curl

*(Don\'t copy this) sudo apt-get install php[version of php]-curl*

Например, если это 5,6 затем используйте

sudo apt-get install php5.6-curl

После этого не забудьте перезапустить apache2

sudo service apache2 restart
4

Другие решения

Для Ubuntu 16.04 с php7.0 вы должны указать версию следующим образом:

sudo apt-get install php7.0-curl

Затем, как всегда, перезагрузите Apache с

sudo service apache2 reload

4

Попробуй это: phpenmod curl и перезапустите Apache. Надеюсь это поможет (;

2

Для тех, у кого есть похожая проблема при установке расширения php и до сих пор undefined:

  1. Бежать php -i | grep EXT_NAME чтобы увидеть результат, если регулярное выражение соответствует чему-либо, что имеет EXT_NAME (в вышеуказанном случае curl) в вашем phpinfo() или просто создайте тестовый файл с <?php phpinfo(); ?> и посмотрим, заметишь ли ты расширение.
  2. Бежать php -m увидеть загруженные расширения и проверить, если у вас есть другая установка, которая имеет приоритет через php -v или более одного файла php.ini, используя find -name 'php.ini' или же locate php.ini в корневом каталоге.
  3. Не забудьте перезапустить apache (или любой другой подобный сервис) и / или включить, если вы установили модуль.

3 # для apache можно сделать через запуск service apache2 restart

Если вы строите из исходного кода, другой возможной причиной может быть то, что вы забыли перекомпилировать PHP с (опять же, в этом случае curl) --with-curl[=DIR] после установки расширения.

2
По вопросам рекламы [email protected]