我有一个qemu linux虚拟机,我正在尝试使用composer页面上的命令在其上安装composer。我在Windows网络上通过使用ntlm的代理访问Internet,因此我使用cntlm对PC上的linux和其他程序进行身份验证(这要感谢创建cntlm的人)。我将上下文添加到访问代理所需的copy命令中,但是它不起作用。
到目前为止,使用的命令是:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php', stream_context_create(['https' => ['proxy' => 'http://10.0.2.2:3128/']]));"
# a variant
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php', stream_context_create(['https' => ['proxy' => 'tcp://10.0.2.2:3128/']]));"
Run Code Online (Sandbox Code Playgroud)
答案是:
PHP Warning: copy(https://getcomposer.org/installer): failed to open stream: Connection timed out in Command line code on line 1
Run Code Online (Sandbox Code Playgroud)
使用wget下载文件效果很好。
$ env | grep "proxy"
https_proxy=http://10.0.2.2:3128/
http_proxy=http://10.0.2.2:3128/
$ wget -O composer-setup.php https://getcomposer.org/installer
--2017-09-XX XX:XX:XX-- https://getcomposer.org/installer
Connecting to 10.0.2.2:3128 ... conected
Request send ... 200 OK
... etc
2017-09-XX XX:XX:XX (XX KB/s) - composer-setup.php saved [305728/305728] …Run Code Online (Sandbox Code Playgroud)