Композитор не работает через прокси

Я пытаюсь загрузить Laravel на Ubuntu 16.04, но у меня возникают проблемы с запуском Composer в нашей сети. Я считаю, что проблема связана либо с нашим прокси-сервером, либо с брандмауэром, оба из которых (к сожалению) управляются нашей головной организацией.

Я пытаюсь запустить эту команду:

sudo composer global require "laravel/installer"

Что дает мне эту ошибку:

Changed current directory to /home/administrator/.composer

[Composer\Downloader\TransportException]
The "https://packagist.org/packages.json" file could not be downloaded: failed to open stream: Cannot assign requested address

require [--dev] [--prefer-source] [--prefer-dist] [--no-plugins] [--no-progress] [--no-update] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...

Когда я запускаю composer diag, я получаю следующий вывод:

Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: FAIL
[Composer\Downloader\TransportException] The "http://packagist.org/packages.json" file could not be downloaded: failed to open stream: Cannot assign requested address
Checking https connectivity to packagist: FAIL
[Composer\Downloader\TransportException] The "https://packagist.org/packages.json" file could not be downloaded: failed to open stream: Cannot assign requested address
Checking github.com rate limit: FAIL
[Composer\Downloader\TransportException] The "https://api.github.com/rate_limit" file could not be downloaded: failed to open stream: Connection refused
Checking disk free space: OK

Теперь я запустил эту команду, чтобы установить прокси:

export HTTP_PROXY="http://proxy.<url>:8080"

Я также изменил /etc/profile, добавив следующую информацию:

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

И я отключил ipv6 (в /etc/sysctl.conf), так как заметил, что в прошлом это вызывало проблемы:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1 

Что работает (как это использует apt-get), но я вообще не могу заставить curl работать. Есть ли другая переменная, которую я должен установить?


person Garion    schedule 31.10.2016    source источник


Ответы (1)


Вам необходимо установить переменные окружения http_proxy = http://username:password@ip:port и https_proxy = http://username:password@ip:port в вашей SO

person Carlos Herrera    schedule 20.12.2016