it-swarm.com.ru

PHP Composer за http-прокси

Я использую composer в сети, где единственный способ получить доступ к Интернету - использовать HTTP или socks-прокси. У меня есть переменные среды http_proxy и https_proxy. Когда compose пытается получить доступ к URL-адресам HTTPS, я получаю следующее:

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

Насколько я знаю, единственный способ подключиться к веб-сайту https - использовать глагол подключения. Как я могу использовать composer за этим прокси?

26
Robert Dolca

Если вы работаете в Linux или Unix (включая OS X), вы должны поместить это куда-нибудь, что повлияет на вашу среду:

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

Вы можете поместить его в /etc/profile, чтобы глобально влиять на всех пользователей на компьютере, или на свой собственный ~/.bashrc или ~/.zshrc, в зависимости от того, какую оболочку вы используете.

Если вы работаете в Windows, откройте панель управления переменными среды и добавьте системные или пользовательские переменные среды, для которых HTTP_PROXY_REQUEST_FULLURI и HTTPS_PROXY_REQUEST_FULLURI установлены в 0 или false

Для других людей, читающих это (не вы, поскольку вы сказали, что они настроены), убедитесь, что HTTP_PROXY и HTTPS_PROXY установлены на правильный прокси-сервер, используя те же методы. Если вы работаете в Unix/Linux/OS X, установка версий имени переменной в верхнем и нижнем регистре является наиболее полным подходом, поскольку некоторые вещи используют только строчную версию, а IIRC некоторые используют верхний регистр. (Я часто использую своего рода гибридную среду, Cygwin для Windows, и я знаю, что для меня было важно иметь и то и другое, но чистая среда Unix/Linux могла бы обойтись только строчными буквами.) 

Если вы все еще не можете заставить работать что-то после того, как все это сделали, и уверены, что у вас установлен правильный прокси-адрес, проверьте, использует ли ваша компания прокси-сервер Microsoft. Если это так, вам, вероятно, нужно установить Cntlm в качестве дочернего прокси-сервера для соединения между Composer (и т.д.) И прокси-сервером Microsoft. Google CNTLM для получения дополнительной информации и указаний о том, как его настроить.

27
iconoclast

Если вы используете Windows, вы должны установить те же переменные среды, но стиль Windows:

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

Это будет работать для вашего текущего cmd.exe. Если вы хотите сделать это более постоянным, предложите вам использовать переменные среды в вашей системе.

31
Felipe

Попробуй это:

export HTTPS_PROXY_REQUEST_FULLURI=false

решил эту проблему для меня, работая за прокси в компании несколько недель назад.

7
nifr

Если вам нужно использовать учетные данные, попробуйте это:

export HTTP_PROXY="http://username:[email protected]:port"
5
chrisandrews7

Это работает, это мой случай ...

C:\xampp\htdocs\your_dir>SET HTTP_PROXY="http://192.168.1.103:8080" 

Замените на ваш IP и порт

4
diego matos - keke

ответ иконоборца у меня не сработал.

Я обновил свой php с 5.3. * (Xampp 1.7.4) до 5.5. * (Xampp 1.8.3), и проблема была решена.

Сначала попробуйте ответить иконобластом, если он не работает, обновление может решить проблему.

3
Amr H. Abd Elmajeed

Вы можете использовать стандартную среду HTTP_PROXY var. Просто установите его на URL вашего прокси. Многие операционные системы уже установили эту переменную для вас.

Просто экспортируйте переменную, и вам не придется вводить ее все время.

export HTTP_PROXY="http://johndoeproxy.cu:8080"

Тогда вы можете сделать composer update нормально.

1
Tom Sarduy

в Windows вставьте:

set http_proxy=<proxy>
set https_proxy=<proxy>

до

php "%~dp0composer.phar" %*

или на Linux вставить:

export http_proxy=<proxy>
export https_proxy=<proxy>

до

php "${dir}/composer.phar" "[email protected]"
1
softwarevamp

в соответствии с вышеизложенными идеями, я создал сценарий Shell, чтобы создать среду прокси для композитора.

#!/bin/bash
export HTTP_PROXY=http://127.0.0.1:8888/
export HTTPS_PROXY=http://127.0.0.1:8888/
zsh # you can alse use bash or other Shell

Этот фрагмент кода находится в файле с именем ~/bin/proxy_mode_Shell, и он создаст новый экземпляр оболочки zsh, когда вам нужен прокси. После завершения обновления вы можете просто нажать клавишу Ctrl+D, чтобы выйти из режима прокси.

добавьте export PATH=~/bin:$PATH к ~/.bashrc или ~/.zshrc, если вы не можете запустить proxy_mode_Shell напрямую.

0
Charles