http proxy 背后的 PHP Composer

2022-08-30 12:48:44

我在网络上使用作曲家,其中访问互联网的唯一方法是使用HTTP或socks代理。我有http_proxy和https_proxy环境变量。当撰写尝试访问HTTPS URL时,我得到这个:

 file could not be downloaded: failed to open stream: Cannot connect to HTTPS server through proxy

据我所知,连接到https网站的唯一方法是使用连接动词。如何在此代理后面使用作曲家?


答案 1

如果您使用的是 Windows,则应设置相同的环境变量,但 Windows 样式为:

set http_proxy=<your_http_proxy:proxy_port>
set https_proxy=<your_https_proxy:proxy_port>

这将适用于您当前的cmd.exe。如果你想更永久地执行此操作,y 建议你在系统上使用环境变量。


答案 2

如果您使用的是Linux或Unix(包括OS X),则应将其放在会影响您的环境的位置:

export HTTP_PROXY_REQUEST_FULLURI=0 # or false
export HTTPS_PROXY_REQUEST_FULLURI=0 #

您可以将其放入以全局影响计算机上的所有用户,或者您自己的或 ,具体取决于您使用的 shell。/etc/profile~/.bashrc~/.zshrc

如果您使用的是 Windows,请打开“环境变量”控制面板,然后添加同时将两者都设置为 或 的系统或用户环境变量。HTTP_PROXY_REQUEST_FULLURIHTTPS_PROXY_REQUEST_FULLURI0false

对于阅读本文的其他人(不是您,因为您说您已经设置了这些设置),请确保并使用相同的方法将其设置为正确的代理。如果您使用的是Unix / Linux / OS X,则设置变量名称的大写和小写版本是最完整的方法,因为某些东西仅使用小写版本,而IIRC使用大写版本。(我经常使用一种混合环境,Windows上的Cygwin,我知道两者都有很重要,但是纯粹的Unix / Linux环境可能只需要小写就可以逃脱。HTTP_PROXYHTTPS_PROXY

如果在完成所有这些操作后仍无法使事情正常工作,并且您确定设置了正确的代理地址,请查看您的公司是否正在使用 Microsoft 代理服务器。如果是这样,您可能需要将 Cntlm 安装为子代理,以便在 Composer(等)和 Microsoft 代理服务器之间进行连接。Google CNTLM,了解有关如何设置它的更多信息和说明。


推荐