我正在尝试在CLI中执行curl POST请求,并抛出此异常:
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模块只加载一次。
任何想法?
答案 0 :(得分:0)
有两组配置点可能导致问题。你有php.ini,然后你有配置文件目录 - conf.d。
curl的conf.d文件是(对于php5.6 cli) - /etc/php/5.6/cli/conf.d/20-curl.ini。
理由是可以链接conf.d目录,以便所有环境都可以使用相同的配置,但是php.ini可以包含(例如)PHP CLI版本的特定配置。
如果您希望curl在所有环境中都可用并配置相同,那么最好注释掉php.ini中的任何配置部分。