Este team de redactores ha estado horas buscando la respuesta a tu duda, te dejamos la solución de modo que deseamos resultarte de mucha apoyo.
Solución:
Me ocurrió el mismo error. Lo arreglé apagando TLS para Composer, no es seguro pero asumí el riesgo por mi cuenta desarrollar maquina.
prueba esto:
composer config -g -- disable-tls true
y vuelva a ejecutar su Composer. ¡A mí me funciona!
Pero no es seguro y no recomendado para su servidor. El sitio web oficial dice:
Si se establece en true todas las URL de HTTPS se probarán con HTTP en su lugar y no se realizará ningún cifrado a nivel de red. Habilitar esto es un riesgo de seguridad y NO se recomienda. La mejor manera es habilitar la extensión php_openssl en php.ini.
Si no desea habilitar la capa no segura en su máquina/servidor, entonces configure su php para habilitar openssl y también funciona. Asegúrese de que se haya instalado la extensión PHP Openssl y actívela en el archivo php.ini.
Para habilitar OpenSSL, agregue o busque y descomente esta línea en su archivo php.ini:
Linux/OSx:
extension=php_openssl.so
Ventanas:
extension=php_openssl.dll
¡Y recarga tu php-fpm / servidor web si es necesario!
según la referencia del compositor, hay dos opciones relevantes: disable-tls
y secure-http
.
nano ~/.composer/config.json
(Si el archivo no existe o está vacío, simplemente créelo con el siguiente contenido)
"config":
"disable-tls": true,
"secure-http": false
entonces se queja mucho:
You are running Composer with SSL/TLS protection disabled.
Warning: Accessing getcomposer.org over http which is an insecure protocol.
pero realiza la composer selfupdate
(o lo que sea).
mientras que uno no puede simplemente “habilitar SSL en php.ini” en Linux; PHP debe compilarse con openSSL configurado como shared
biblioteca – para poder acceder a ella desde PHP CLI SAPI.
Tuve exactamente el mismo problema y no pude encontrar una solución, así que después de pensar y buscar un rato me di cuenta de que mi PHP.INI aparentemente no buscaba en el directorio correcto para mis Extensiones de PHP, así que entré en:
“Directorio en el que residen las extensiones cargables (módulos)”. Y encontre lo siguiente:
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
;extension_dir = "ext"
Y simplemente eliminó el ; delante de “extension_dir = “ext”, tenga en cuenta que esto es solo para Windows, elimine el punto y coma delante del primer extension_dir si está ejecutando un sistema operativo diferente.
No tengo idea de por qué el mío aún no estaba marcado, pero es algo que debe buscar si tiene problemas.
Si te gusta la programación, eres capaz de dejar un enunciado acerca de qué le añadirías a este ensayo.