Apache通过HTTP代理卷曲

时间:2010-11-29 17:04:43

标签: php curl proxy selinux

我正在尝试让PHP执行与另一台服务器的curl连接。要连接到服务器,我们需要通过代理。 在bash中,我们设置了env变量http_proxy,这在使用命令行中的php脚本时可以正常工作。但是,当尝试从apache执行curl或wget时,它会失败并且没有错误。 服务器配置了基于Centos默认值的SELinux。由于我不确定SELinux的配置,因此没有改变。 还有其他人有过类似的问题吗?

2 个答案:

答案 0 :(得分:2)

对于迟到的回复感到抱歉。 这与SELinux有关,阻止apache执行对网络的调用。要允许apache执行此操作,您需要运行:

setsebool -P httpd_can_network_connect 1

然后我遇到了另一个相关的问题,我需要从命令行执行脚本,找不到合适的SELinux属性,所以最终禁用它......哦,好吧。

答案 1 :(得分:0)

当您从“命令行执行”时,Web服务器进程很可能不会与您在同一用户下运行,它可能也不会具有相同的shell环境。 但是,您可以在curl请求中显式配置代理服务器。如果我正确地记得它的-x开关。你也可以通过很多论点。只需查看联机帮助页。 wget也支持代理,但据我所知,你确定你配置的params。另请参阅联机帮助页。