为什么php curl可以在命令行中运行而且不在Apache中?

时间:2016-10-03 09:28:54

标签: php linux curl proxy

我的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 

......工作。

为什么呢?有什么区别?

0 个答案:

没有答案