PHP Composer за HTTP прокси
Я использую composer в сети, где единственный способ получить доступ к интернету - использовать HTTP или Socks proxy. У меня есть переменные среды http_proxy и https_proxy. Когда compose пытается получить доступ к URL-адресам HTTPS, я получаю следующее:
file could not be downloaded: failed to open stream: Cannot connect to HTTPS server through proxy
насколько я знаю, единственный способ подключиться к веб-сайту https-это использовать команду connect. Как я могу использовать composer за этим прокси?
10 ответов
если вы находитесь в 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 (etc.) и прокси-сервера. Google CNTLM для получения дополнительной информации и указания о том, как его настроить.
Если вы используете Windows, вы должны установить те же переменные среды, но стиль Windows:
set http_proxy=<your_http_proxy:proxy_port>
set https_proxy=<your_https_proxy:proxy_port>
это будет работать для вашего текущего cmd.исполняемый. Если вы хотите сделать это более постоянным, y предлагает вам использовать переменные среды в вашей системе.
попробуйте это:
export HTTPS_PROXY_REQUEST_FULLURI=false
решил эту проблему для меня, работающего за прокси в компании несколько недель назад.
Если вам нужно использовать учетные данные, попробуйте следующее:
export HTTP_PROXY="http://username:password@webproxy.com:port"
это работает , это мое дело ...
C:\xampp\htdocs\your_dir>SET HTTP_PROXY="http://192.168.1.103:8080"
заменить на ваш IP и порт
ответ iconoclast не сработал для меня.
я обновил свой php с 5.3.* (xampp 1.7.4) - 5.5.* (xampp 1.8.3) и проблема была решена.
сначала попробуйте ответить iconoclast, если он не работает, обновление может решить проблему.
вы можете использовать стандартный HTTP_PROXY
окружающая среда var. Просто установите его на URL вашего прокси-сервера. Многие операционные системы уже установили для вас эту переменную.
просто экспортируйте переменную, тогда вам не нужно вводить ее все время.
export HTTP_PROXY="http://johndoeproxy.cu:8080"
затем вы можете сделать composer update
нормально.
согласно приведенным выше идеям, я создал сценарий оболочки, чтобы сделать прокси-среду для composer.
#!/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
напрямую.
в Windows вставить:
set http_proxy=<proxy>
set https_proxy=<proxy>
до
php "%~dp0composer.phar" %*
или в Linux insert:
export http_proxy=<proxy>
export https_proxy=<proxy>
до
php "${dir}/composer.phar" "$@"
решение: это ваш прокси-сервер, который заблокирован, Вы должны разместить внешнее соединение, вы можете использовать USB-модем и повторно загрузить : composer.phar установить php, я запускаю свой me