php - manager - La actualización del compositor falla al actualizar desde packagist
http packagist org/> (9)
Al ejecutar la instalación / actualización del compositor, recibí el siguiente error de openssl:
El archivo " https://packagist.org/packages.json " no se pudo descargar: la operación SSL falló con el código 1. OpenSSL Mensajes de error: error: 14090086: Rutinas de SSL: SSL3_GET_SERVER_CERTIFICATE: error en la verificación del certificado No se pudo abrir el cript secuencia: la operación falló https://packagist.org no se pudo cargar completamente, la información del paquete se cargó desde el caché local y puede estar desactualizada
Estoy usando:
- PHP 5.6.3 (cli) (construido: 17 de noviembre de 2014 15:16:53)
- Pila de XAMPP 5.6.3-0
- ubuntu 14.04
compositor diag muestra:
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity: FAIL
[Composer/Downloader/TransportException] The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Checking disk free space: OK
Checking composer version:
[Composer / Downloader / TransportException]
El archivo " https://getcomposer.org/version " no se pudo descargar: la operación SSL falló con el código 1. Mensajes de error de OpenSSL:
error: 14090086: Rutinas SSL: SSL3_GET_SERVER_CERTIFICATE: error en la verificación del certificado
Error al habilitar criptografía
no se pudo abrir la secuencia: la operación falló
php -r ''var_dump (openssl_get_cert_locations ());'' muestra:
array(8) {
["default_cert_file"]=>
string(33) "/opt/lampp/share/openssl/cert.pem"
["default_cert_file_env"]=>
string(13) "SSL_CERT_FILE"
["default_cert_dir"]=>
string(30) "/opt/lampp/share/openssl/certs"
["default_cert_dir_env"]=>
string(12) "SSL_CERT_DIR"
["default_private_dir"]=>
string(32) "/opt/lampp/share/openssl/private"
["default_default_cert_area"]=>
string(24) "/opt/lampp/share/openssl"
["ini_cafile"]=>
string(0) ""
["ini_capath"]=>
string(0) ""
}
Para PHP 5.5.19 todo está bien.
En el mac con XAMPP:
cd /Applications/XAMPP/xamppfiles/share/openssl
sudo curl -O -k http://curl.haxx.se/ca/cacert.pem
sudo mv cacert.pem cert.pem
Detener y reiniciar Apache
Encontré una solución a esto
Estoy corriendo:
FreeBSD 10.1
Apache2.4
PHP 5.6.3
Para encontrar el archivo CA ejecuté este comando
> locate cacert.pem
El resultado fue:
/usr/local/lib/perl5/site_perl/5.16/Mozilla/CA/cacert.pem
Luego abre el archivo php.ini y
cambia esto:
; openssl.cafile =
A esto:
openssl.cafile = / usr / local / lib / perl5 / site_perl / 5.16 / Mozilla / CA / cacert.pem
Nota: esta directiva solo está disponible en php 5.6.x
Luego reinicie Apache
Estoy usando Mac OS Sierra y cuando intentaba actualizar el compositor con el comando /usr/local/bin/composer self-update
autoactualizaba el error:
[Composer/Downloader/TransportException]
The "https://getcomposer.org/version" file could not be downloaded: SSL operation failed with co
de 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Lo arreglé siguiendo estos pasos:
1) Crea la base de datos local usando el comando:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
2) Localice el archivo cert:
locate cacert.pem
3) Compruebe la ubicación del archivo php.ini:
php --ini
4) Si el ''Archivo de configuración cargado'' para el archivo php.ini
se muestra como (none)
, copie el archivo /etc/php.ini.default
en /etc/php.ini
:
sudo cp /etc/php.ini.default /etc/php.ini
5) Abra el archivo php.ini
y edite la línea ;openssl.cafile=
comentarios y agregando el enlace a la ubicación del archivo cert:
openssl.cafile=/Users/me/.composer/cacert.pem
Eso es. Ahora, cuando ejecute la actualización del compositor, funcionará bien.
La adición de openssl.cafile a php.ini también funcionó para mí. En lugar de buscar el archivo cert, lo descargué directamente:
curl http://curl.haxx.se/ca/cacert.pem > cacert.pem
y luego solo apunté a openssl.cafile configurándolo.
Para nosotros, este problema solo pareció afectar a uno de nuestros repositorios privados. Puede haber tenido algo que ver con certificados o un firewall corporativo, pero parecía intermitente, por lo que no pudimos confirmar antes de encontrar una solución diferente.
Dentro de composer.json, cambiamos la URL del repositorio de https a la variante ssh y agregamos la opción "no-api": true
:
"repositories": [
{
"type": "vcs",
"url": "[email protected]:our-user/our-repo.git",
"no-api": true
}
]
Con esa edición, las operaciones de actualización / instalación del compositor pudieron completarse con éxito.
Resolví el problema con el error SSL al agregar el certificado SSL a la carpeta de certificados XAMPP.
// navigate to a directory to save the certificate
cd /Downloads
// download a certificate
wget http://curl.haxx.se/ca/cacert.pem
// rename and move the file to the Xampp certificates folder
mv cacert.pem /Applications/XAMPP/xamppfiles/share/openssl/cert.pem
¡No olvides reiniciar tu apache!
Primero : Verifique la ubicación del archivo de certificado que estará en la clave default_cert_file
, la encontrará en openssl_get_cert_locations()
es una función de apertura de PHP. Puedes ejecutarlo de la siguiente manera:
$ php -r "print_r(openssl_get_cert_locations());"
Salida en mi sistema
Array
(
[default_cert_file] => /opt/lampp/share/openssl/cert.pem
[default_cert_file_env] => SSL_CERT_FILE
[default_cert_dir] => /opt/lampp/share/openssl/certs
[default_cert_dir_env] => SSL_CERT_DIR
[default_private_dir] => /opt/lampp/share/openssl/private
[default_default_cert_area] => /opt/lampp/share/openssl
[ini_cafile] =>
[ini_capath] =>
)
Segundo : Descargue http://curl.haxx.se/ca/cacert.pem :
$ wget http://curl.haxx.se/ca/cacert.pem
Tercero : copie el archivo certificate.pem
en la ubicación default_cert_file
:
$ sudo mv cacert.pem /opt/lampp/share/openssl/cert.pem
** DESDE https://github.com/composer/composer/issues/3346 **
locate cacert.pem
vi /usr/local/lib/php.ini
#add this
openssl.cafile=/usr/local/share/perl5/Mozilla/CA/cacert.pem
# press esc then type
:wq #enter
curl -sS https://getcomposer.org/installer | php -- —version=1.0.0-alpha10
mv composer.phar /usr/local/bin/composer
alias composer=''/usr/local/bin/composer''
composer -V
php /usr/local/bin/composer global self-update
cd .composer/
composer init
composer clearcache
Esto me funcionó cuando me sale un error:
https://packagist.org no se pudo cargar completamente, la información del paquete se cargó desde el caché local y puede estar desactualizada