Linux — Как я могу скачать файл с помощью копирования через NTLM прокси на PHP?

У меня есть виртуальная машина qemu linux, и я пытаюсь установить на нее композитор, используя команды на странице композитора. Я нахожусь в сети Windows, доступ к Интернету через прокси-сервер, который использует ntlm, поэтому я использую cntlm для аутентификации linux и других программ на моем ПК (спасибо людям, которые создали cntlm). Я добавил контекст к команде копирования, необходимой для доступа к прокси, но она не работает.

Эта команда использовалась до сих пор:

$ 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/']]));"

Ответ:

PHP Warning: copy(https://getcomposer.org/installer): failed to open stream: Connection timed out in Command line code on line 1

Скачать файл с помощью 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]

Сайты, используемые как ссылки:

Я знаю, что есть ручной способ установки композитора, но мне просто любопытно, как это сделать?

3

Решение

Вам не обязательно делать загрузку с помощью PHP.

Поскольку загрузка wget работает, вы можете:

wget -O composer-setup.php https://getcomposer.org/installer
export EXPECTED_HASH=$(wget -q -O - https://composer.github.io/installer.sig)
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$EXPECTED_HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"php composer-setup.php
php -r "unlink('composer-setup.php');"
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector