Debe habilitar la extensión openssl para descargar archivos a través de https

123

Quería instalar Zend Framework 2. Así que descargué la aplicación esqueleto. Como se menciona en el manual de ZF2, tenemos que emitir el comando

php composer.phar install 

Dentro del esqueleto.

Pero recibo un error

Debe habilitar la extensión openssl para descargar archivos a través de https

Luego habilité el ssl_module en mi wamp, revisé el archivo php_ini y puedo ver la siguiente línea

extension = php_openssl.dll

Aún así obtengo el mismo error. ¿Alguien tiene alguna idea de lo que me perdí?

Uttam Dutta
fuente
1
Tuve este problema al ejecutar travis-ci y resultó que, a diferencia de todas las distribuciones de Linux bajo el sol, algunos de los entornos más antiguos de travis-ci se compilaron sin openssl, en caso de que alguien más se encuentre con el mismo problema.
Kzqai
@Kzqai ¿es posible compilar esta extensión en travis, como en PHP 5.3.3 en mi pregunta ? Veo en su libro de cocina que puede instalar extensiones PECL, pero no creo que la extensión openssl esté disponible a través de PECL.
Jeff Puckett

Respuestas:

286

PHP CLI SAPI está usando un php.inimódulo diferente a CGI o Apache.

Encuentra la línea ;extension=php_openssl.dllen wamp/bin/php/php#.#.##/php.ini y elimine mediante la eliminación del punto y coma ( ;) desde el principio de la línea.

BorisS
fuente
¡También tuve que habilitar la extensión phar (extensión = php_phar.dll) y, como se dice a continuación, el módulo apache ssl!
Diego Favero el
1
"PHP CLI SAPI está usando php.ini diferente que el módulo CGI o Apache". Ese fue el truco!
George D.
Si no puede encontrar esa línea en su, php.inisimplemente agregue la línea extension=php_openssl.dlldebajo de la parte Extensiones dinámicas.
totymedli
Estoy usando xampp, Composer da el mismo error de SSL abierto incluso después de eliminar ';' de la extensión openssl en php.ini.
Shashikumar Misal
Si está utilizando Mac y port, puede seleccionar la versión de PHP port select php php55e instalar la extensiónport install php55-openssl
Prabowo Murti
36

Verifique que está editando el archivo php.ini correcto.

Referencia: https://github.com/composer/composer/issues/1440

"WAMP utiliza diferentes archivos php.ini en la CLI y para Apache. Cuando habilita php_openssl a través de la interfaz de usuario de WAMP, lo habilita para Apache, no para la CLI. Debe modificar C: \ wamp \ bin \ php \ php- XYZ \ php.ini para habilitarlo para la CLI ".

Duramba
fuente
2
quién pensaría que ... En serio ... Esto resolvió el problema. Gracias
Ruwantha
20

asegúrese de tener la ruta correcta a la carpeta de extensión

extension_dir = "ext"

por defecto se comenta con; personaje

Adam Kopciński
fuente
1
esta línea fue comentada completamente y ahora funciona
Brian Dillingham
¡Importante para la instalación de Windows!
haakym
¿Dónde está esta línea? En que archivo? php.ini en 1, C: \ wamp64 \ bin \ apache O 2. C: \ wamp64 \ bin \ php \ php7.0.0?
MyDaftQuestions
9

También tuve el mismo problema mientras jugaba con Zend Framework 2 y el compositor. Estoy usando PHP 5.4 (instalado a través de macports) y mi solución fue instalar openssl para PHP 5.4 también a través de macports.

sudo port install php54-openssl
Freddy Duarte
fuente
5

Me he enfrentado a este problema, pero la configuración de openssl (también para cli) no ayudó.

He actualizado compositor y esto resolvió mi problema.

Sólo tipo:

$ php composer.phar self-update

o

$ composer selfupdate

¡Buena suerte!

Athlan
fuente
4

Yo uso XAMPP. En C: \ xampp \ php \ php.ini, la entrada para openssl no existía, así que agregué "extension = php_openssl.dll" en la línea 989, y el compositor funcionó.

Andrew Koper
fuente
4

Debe habilitar "extension = php_openssl.dll" en ambos archivos (php y apache). mi ruta de archivos de PC son estos:

  1. C: \ wamp \ bin \ php \ php5.3.13 \ php.ini

  2. C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini

Mohammed Saqib Rajput
fuente
Esto está mal. Compruebe con phpinfo () qué php.ini se utiliza
ThaDafinser
3

Uttam, si su problema no se resuelve, intente el siguiente enfoque de 3 pasos. Funcionó para mí ya que tenía exactamente el mismo problema.

Paso 1: haga clic en el icono de la bandeja de wamp.

paso2: ir al menú apache-> módulos apache

Paso 3: haga clic en el elemento de menú "ssl_module"

reiniciará automáticamente el wamp. si wamp no se reinicia automáticamente, reinícielo a través del menú de la bandeja de wamp-> Reiniciar todos los servicios. Después de reiniciar, confirme que "ssl_module" aparece marcado en el menú apache-> apache modules

después de eso solo intente que la instalación de php composer.phar pase por la respuesta compartida por usted, el archivo php.ini contiene extension = php_openssl.dll y el directorio php / ext también tiene el archivo "php_openssl.dll"

buena suerte

adang
fuente
3

La respuesta de Valery me ayudó: https://stackoverflow.com/a/14265815/492457

WAMP utiliza diferentes archivos php.ini en la CLI y para Apache. cuando habilita php_openssl a través de la interfaz de usuario WAMP, lo habilita para Apache, no para la CLI. Debe modificar C: \ wamp \ bin \ php \ php-5.4.3 \ php.ini para habilitarlo para la CLI.

karlisup
fuente
2

Asegúrese de actualizar su php.inipara CLI. Para mi caso, esta fue una línea de C:\wamp\bin\php\php5.4.3\php.inicomentarios extension=php_openssl.dll.

codarrior
fuente
1

Respuesta tardía pero agregando para que otros puedan aprender la razón.

También debe editar el archivo php.ini en la ubicación "wamp \ bin \ php \ php-XYZ".

Shah Alom
fuente
0

¡Tuve que descomentar extension=opensslen el php.iniarchivo para que todo funcionara!

Harshit Agrawal
fuente
0

Si utiliza Wamp, no use la interfaz de usuario de Wamp para habilitar extension=php_openssl.dll

simplemente vaya a su directorio php, por ejemplo: C:\wamp\bin\php\php5.4.12y edite php.iniy descomente el extension=php_openssl.dll.

deberia de funcionar.

meti
fuente