【发布时间】:2013-03-05 04:42:54
【问题描述】:
我有以下问题。我们的公司网络中有一个在 CentOS 上运行的私有服务器。代理服务器在运行 NTLMV2 身份验证的 Windows 上。
所以,我在我的 CentOS 服务器上安装了 cntlm 以便访问所需的资源。一切正常。我的意思是,当从终端运行时,curl、wget 和 yum 可以在这个 cntlm 代理上正常工作。
但是,有一件事是行不通的。我们还在此服务器上运行 Apache + PHP + MySQL 实例。诀窍是 - 它无法以某种方式访问代理。这是使用 curl 的示例 PHP 文件:
<?php
$url = "http://www.google.com";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_PROXY, 'http://127.0.0.1:3128');
$data = curl_exec($ch);
if ($data == FALSE) echo curl_error($ch);
curl_close($ch);
var_dump($data);
?>
当我从命令行执行时:
php curl.php | tail -n 10
一切都很好,它可以通过这个代理访问全局资源。但是,如果我从浏览器页面运行它,Apache 无法连接,并给出错误“无法连接到 127.0.0.1:权限被拒绝”
【问题讨论】: