PHP: модуль 'curl' уже загружен - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь сделать curl POST-запрос в CLI, и он выдает это исключение:

PHP Warning:  Module 'curl' already loaded in Unknown on line 0

Этот скрипт отлично работает в локальной среде (Mac OS), но когда я запускаю его в производство (Ubuntu 16.04), он выдает это исключение.

Я использую версию PHP 5.6.

Вот метод PHP:

function post_request($url, $data){
    $fields_string =http_build_query($data);
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
    $result = curl_exec($ch);
    curl_close($ch);

    return $result;
}

Для информации мой метод используется в том же проекте (не в режиме cli) и работает как брелок. ошибка генерируется только в режиме CLI.

когда я смотрю в /etc/php/5.6/php.ini, модуль curl загружается только один раз.

Есть идеи?

1 Ответ

0 голосов
/ 02 мая 2018

Существует 2 набора точек конфигурации, которые могут вызывать проблему. У вас есть php.ini, а затем у вас есть каталог файлов конфигурации - conf.d.

Ваш файл conf.d для curl (для php5.6 cli) - /etc/php/5.6/cli/conf.d/20-curl.ini.

Смысл в том, что каталог conf.d может быть связан, чтобы все среды могли использовать одну и ту же конфигурацию, но ваш php.ini может содержать определенную конфигурацию для (например) CLI-версии PHP.

Если вы хотите, чтобы curl был доступен и настраивался одинаково во всех средах, тогда лучше закомментировать любые части конфигурации в php.ini.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...