PHP Composer detrás de proxy http

Utilizo composer en una red donde la única forma de acceder a internet es utilizando HTTP o socks proxy. Tengo variables de entorno http_proxy y https_proxy. Cuando composer intenta acceder a URLs HTTPS obtengo esto:

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

Por lo que yo sé la única manera de conectarse a un sitio web https está utilizando un verbo conectar. ¿Cómo puedo utilizar Composer detrás de este proxy?

Si utiliza Windows, deberá establecer las mismas variables de entorno, pero al estilo de Windows:

set http_proxy=
set https_proxy=

Eso funcionará para su actual cmd.exe. Si quieres hacer esto de forma más permanente, te sugerimos que utilices variables de entorno en tu sistema.

Comentarios (1)
Solución

Si usas Linux o Unix (incluyendo OS X), debes poner esto en algún lugar que afecte a tu entorno:

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

Puedes ponerlo en /etc/profile para que afecte globalmente a todos los usuarios de la máquina, o en tu propio ~/.bashrc o ~/.zshrc, dependiendo del shell que uses.

Si estás en Windows, abre el panel de control de Variables de Entorno y añade una variable de entorno de sistema o de usuario con los valores HTTP_PROXY_REQUEST_FULLURI y HTTPS_PROXY_REQUEST_FULLURI a 0 o false.

Para otras personas que lean esto (no tú, ya que has dicho que los tienes configurados), asegúrate de que HTTP_PROXY y HTTPS_PROXY están configurados con el proxy correcto, utilizando los mismos métodos. Si estás en Unix/Linux/OS X, establecer tanto la versión en mayúsculas como en minúsculas del nombre de la variable es el enfoque más completo, ya que algunas cosas utilizan sólo la versión en minúsculas, y IIRC algunos utilizan las mayúsculas. (Suelo usar una especie de entorno híbrido, Cygwin en Windows, y sé que para mí era importante tener ambas, pero los entornos Unix/Linux puros podrían arreglárselas sólo con minúsculas).

Si después de hacer todo esto sigue sin funcionar, y está seguro de que ha configurado la dirección proxy correcta, compruebe si su empresa utiliza un servidor proxy de Microsoft. Si es así, probablemente necesites instalar Cntlm como proxy hijo para conectar entre Composer (etc.) y el servidor proxy de Microsoft. Busca CNTLM en Google para obtener más información e instrucciones sobre cómo configurarlo.

Comentarios (1)

Prueba esto:

export HTTPS_PROXY_REQUEST_FULLURI=false

solucionó este problema para mí trabajando detrás de un proxy en una empresa hace unas semanas.

Comentarios (2)