我有以下问题。我们的企业网络中有一个在 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:权限被拒绝”