apache访问php和使用php执行php文件时,出现差异
代码如下,文件名index.php$url1 = "http://ip:port/xxx/xxx/xxx"; // 格式如此,真实的url可访问
$url2 = "www.baidu.com";
// 可以得到结果
$ch1 = curl_init($ur1l);
curl_exec($ch);
curl_close($ch);
// 运行卡住
$ch2 = curl_init($url2);
curl_exec($ch);
curl_close($ch);问题如下
直接使用 curl http://ip:port/xxx/xxx/xxx正确返回结果
在shell运行 php index.php 正确返回结果
在浏览器打开localhost/index.php 运行卡住,无结果
但是如果把url换成"www.baidu.com",上述三种方式都能正确返回结果。
可能是什么原因导致的呢?
一点点的调试 先exit个最简单的字符串看看能不能正常执行 看看信息啊、好像是curl_error $url2是一个跳转的https超链接, 使用浏览器年份历史比较长的一般认为:URL地址最好加"http(https)://"前缀,以使用完整的地址协议
$url2='http://www.baidu.com';
curl_setopt($ch2, CURLOPT_URL, $url2);
if ($https) {
// curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
// curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, true); // 对认证证书来源的检查
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
}
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
// 设置https超链接延时超时
curl_setopt($ch2, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch2); 应该是网络隔离的问题,访问的服务是公司内部网络,但是还是不明白为什么直接curl就可以,套一层apache就不行了
页:
[1]