我的CentOS计算机支持公司代理,并且系统范围内设置了 http代理。从命令行运行 curl 不需要代理设置并返回输出。
curl http://google.com
但是,使用此示例:
$url = 'http://google.com';
try{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
header('Content-type: text/html; charset=UTF-8');
echo $curl_scraped_page;
} catch (Exception $ex)
{
echo $ex->getMessage();
}
?>
我得到:连接超时
我知道我可以添加 CURLOPT_PROXY 选项代码。
但是为什么我需要它如果代理是在系统范围内设置?
简而言之:
从Apache启动这个PHP脚本:
http://myserver.com/test_curl.php
不起作用。
但是通过命令行运行它:
php test_curl.php
......工作。
为什么呢?有什么区别?