Подтвердить что ты не робот

PHP-композитор за HTTP-прокси

Я использую композитор в сети, где единственный способ доступа к Интернету - использовать 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. Как я могу использовать композитор за этим прокси?

4b9b3361

Ответ 1

Если вы работаете в 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 за дополнительной информацией и указаниями по ее настройке.

Ответ 2

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

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

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

Ответ 3

Попробуйте следующее:

export HTTPS_PROXY_REQUEST_FULLURI=false

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

Значок iconoclast не работал у меня.

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

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

Ответ 7

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

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

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

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

Ответ 8

в 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]"

Ответ 9

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

#!/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 напрямую.

Ответ 10

Тайм-аут операции (проблемы с IPv6) # Вы можете столкнуться с ошибками, если IPv6 настроен неправильно. Распространенная ошибка:

The "https://getcomposer.org/version" file could not be downloaded: failed to
open stream: Operation timed out

Мы рекомендуем вам исправить настройки IPv6. Если это невозможно, вы можете попробовать следующие обходные пути:

Обходной путь Linux:

В linux кажется, что выполнение этой команды помогает повысить трафик ipv4 по сравнению с ipv6, что является лучшей альтернативой, чем полное отключение ipv6:

sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"

Обходной путь Windows:

Я боюсь, что в Windows единственный способ полностью отключить ipv6 (в Windows или в домашнем маршрутизаторе).

Обходной путь Mac OS X:

Получить имя вашего сетевого устройства:

networksetup -listallnetworkservices

Отключите IPv6 на этом устройстве (в данном случае "Wi-Fi"):

networksetup -setv6off Wi-Fi

Запустить композитор...

Вы можете снова включить IPv6 с помощью:

networksetup -setv6automatic Wi-Fi

Тем не менее, если это решит вашу проблему, обратитесь к своему интернет-провайдеру, чтобы попытаться устранить ошибки маршрутизации. Это лучший способ решить проблемы для всех.

Надеюсь, это поможет вам!

Ответ 11

Решение: это ваш прокси-сервер, который заблокировал, вы должны установить внешнее соединение, вы можете использовать USB-модем и перезагрузить: composer.phar install php, я запустил мой