Proxy PHP文件可以从终端访问全局网络,但不能从apache访问

Proxy PHP文件可以从终端访问全局网络,但不能从apache访问,proxy,ntlmv2,Proxy,Ntlmv2,我有以下问题。我们公司网络中的CentOS上运行着一台专用服务器。代理服务器位于运行NTLMV2身份验证的Windows上 因此,我在CentOS服务器上安装了cntlm,以便访问所需的资源。一切都很顺利。我的意思是,当从终端运行时,curl、wget和yum可以正确地使用这个cntlm代理 然而,有一件事是行不通的。我们也有Apache+PHP+MySQL实例在这台服务器上运行。诀窍是——它无法以某种方式访问代理。下面是使用curl的示例PHP文件: <?php $url = "http

我有以下问题。我们公司网络中的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);
?>

一切都很好,它可以通过这个代理访问全局资源。但是,如果我从浏览器页面运行它,Apache将无法连接,并出现错误“连接到127.0.0.1失败:权限被拒绝”

我已经很久没有提出这个问题了,但我终于找到了解决方案。问题在于SELinux权限,默认情况下不允许Apache执行试图访问网络的脚本

要解决此问题,需要运行以下命令:

setsebool -P httpd_can_network_connect on
可以找到更多信息

setsebool -P httpd_can_network_connect on