从PHP执行git时无法使用代理?

从PHP执行git时无法使用代理?,php,git,apache,bash,proxy,Php,Git,Apache,Bash,Proxy,我们正在从PHP调用一个bash脚本,它将执行一个简单的git拉动。 当我们使用root或apache用户从终端运行这个脚本时,它执行得很好。 但是,当php使用exec执行脚本时,会输出以下错误: error: Failed to connect to XX.XX.XX.XX: Permission denied while accessing https://someuser@bitbucket.org/somecompany/testproject.git/info/refs 二十、 X

我们正在从PHP调用一个bash脚本,它将执行一个简单的git拉动。 当我们使用root或apache用户从终端运行这个脚本时,它执行得很好。 但是,当php使用exec执行脚本时,会输出以下错误:

error: Failed to connect to XX.XX.XX.XX: Permission denied while accessing https://someuser@bitbucket.org/somecompany/testproject.git/info/refs
二十、 XX.XX.XX是http代理解析到的IP地址

它还打印出用户和代理配置(您将在下面的bash脚本中看到)

PHP:

狂欢节:

以apache用户身份运行脚本时[su-c./gitBranch.sh-s/bin/sh apache]

apache
http://someproxy.somecompany.net:8181
Already up-to-date.

为什么从PHP运行时会失败?它以apache用户的身份执行,并且具有正确的代理集。

事实证明,默认情况下,不允许httpd进行传出连接。输出的错误实际上来自git对curl的使用

运行此命令可以修复它:

setsebool -P httpd_can_network_connect 1

代理服务器上有密码吗?根本没有密码。如果是这样的话,我想当从终端运行脚本时,它不会工作,对吗?
apache
http://someproxy.somecompany.net:8181
Already up-to-date.
setsebool -P httpd_can_network_connect 1