¿Cómo habilitar la extensión openssl de PHP para instalar Composer?

113

Estoy intentando instalar Laravel en la configuración de WAMP. Recibo un mensaje de advertencia por no habilitar openssl que ya había hecho en WAMP.

Aquí hay una captura de pantalla del mensaje.

ingrese la descripción de la imagen aquí

FirmView
fuente
1
Compruebe la ruta de PHP en la variable de entorno %PATH%, tal vez Composer esté buscando PHP en otra ubicación en lugar de WampServer.
Rubens Mariuzzo
Yo tuve el mismo problema. Estaba editando php.ini desde el icono de wamp. Pero lo hice manualmente, reinicié mi servidor y funciona.
themhz

Respuestas:

121

Es posible que WAMP y Composer estén usando diferentes instalaciones PHP. Composer utilizará el conjunto de PHP en la PATHvariable de entorno.

Si desea habilitar la extensión openssl para instalar Composer , primero debe verificar la ubicación de la instalación de PHP.

  1. Abra un símbolo del sistema, escriba: echo %PATH%luego verifique la ubicación de su instalación de PHP.
  2. Ir a ese lugar y editar el archivo llamado: php.ini.
  3. Quite el comentario de la línea extension=php_openssl.dllquitando el punto y coma al principio.

Ahora está listo para instalar Composer.

Rubens Mariuzzo
fuente
2
Sucede que no tengo esta extensión en mi instalación de XAMPP. Acabo de agregar (extensión = php_openssl.dll) en php.ini y está funcionando descargando dependencias de laravel.
Adrian P.
8
cuando escribo echo %PATH%obtengo: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sysem32\WindowsPowerShell\v1.0\;C:\Program files\Microsoft\Web Platform Installer\;C:\Program Files\MySQL\MySQL Server 5.5\bin.. no hay ningún php instalado en ninguno de esos directorios .. ¿qué hago ahora?
Abbood
19
wamp está usando este php.ini: c: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini pero el compositor está usando PHP desde CLI, y por lo tanto está leyendo este archivo: c: \ wamp \ bin \ php \ php5.4.12 \ php.ini (por lo que debe habilitar openssl allí)
Enrique
2
Estoy usando xampp, Composer da el mismo error de falta de ssl abierto incluso después de eliminar el ';' de la extensión openssl en php.ini.
Shashikumar Misal
30
También tuve que elimine la línea extension_dir = "ext"en php.ini, pero yo estoy usando la instalación de PHP normal en lugar de WAMP.
David Harkness
62

Resolví mi problema de una manera diferente. El problema es que la GUI de wamp era engañosa: afirmaba que había php_opensslhabilitado ... y si hacía clic php.inien la misma GUI ... en realidad mostraba que no extension=php_openssl.dllestaba comentada ...

No estoy seguro de si estoy usando la misma versión de instalador del compositor del OP, pero en realidad le pide al principio que especifique el php.exeque desea aplicar al compositor (lo que básicamente garantiza que nadie intente aplicar el compositor a el ejecutable de php incorrecto como lo que sucedió con el OP).

La forma en que resolví esto fue yendo yo mismo a la instalación de php dentro del paquete wamp: C:\wamp\bin\php\php5.4.12y mirando php.inallí ... cuando lo abrí, ¡me sorprendió que la línea extension=php_openssl.dllestuviera realmente comentada! Lo descomenté y funcionó bien.

ingrese la descripción de la imagen aquí

abbood
fuente
Gracias después de tener que mirar esta respuesta, descubrí que wamp estaba usando 5.5.12 pero seleccioné el directorio 5.4 para php.exe
Afnan Bashir
¿En qué ruta residen los archivos libeay32.dllo liblibcrypto-*.dll? php.net/manual/de/openssl.installation.php
Bernhard Döbler
53

Tuve el mismo problema y aquí la solución que encontré, en tu php.ini necesitas hacer algunos cambios:

  1. extension_dir = "ext"
  2. extension = php_openssl.dll

Todos aquí hablan activa la extensión openssl, pero en Windows también necesitas activar el directorio de extensión.

Francisco Cabral
fuente
3
Hombres, eres el único que mencionó el extension_dir, ¡eres genial!
giannis christofakis
Esto funcionó para mí. Había descargado PHP directamente como en este tutorial .
Robado el
26

Para el servidor WAMP, el comentario de "Enrique" resolvió mi problema.

wamp está usando este php.ini :

c:\wamp\bin\apache\Apache2.4.4\bin\php.ini

Pero el compositor está usando PHP desde CLI y, por lo tanto, está leyendo este archivo:

c:\wamp\bin\php\php5.4.12\php.ini (so you need to enable openssl there)

Para el compositor, tendrá que habilitar la extensión en

c:\wamp\bin\php\php5.4.12\php.ini

Cambio:

;extension=php_openssl.dll 

a

extension=php_openssl.dll
user3887814
fuente
Para MAMP, tuve que copiar el archivo php.ini de C: \ MAMP \ conf \ phpx.xx a C: \ MAMP \ bin \ php \ phpx.xx (\ conf \ .... a \ bin \ .. .)
Mike
15

Si está haciendo esto en Windows sin una de las pilas de WAMP, aquí le mostramos cómo hacerlo

  1. Descargue una instalación de PHP para Windows . Por lo general, querrá una instalación que no sea segura para subprocesos. Puede usar compilaciones de 32 bits o 64 bits
  2. Extraiga el archivo zip en algún lugar. Yo sugeriría C:\php. El instalador de Composer lo encontró allí sin ningún aviso adicional
  3. Las últimas versiones de PHP para Windows no vienen con una php.iniforma predeterminada . En su lugar, verá dos archivos, como se indica a continuación. Cambie el nombre de uno php.inio cópielo en php.ini.
    • php.ini-desarrollo
    • php.ini-producción
  4. Abra su php.iniarchivo y elimine el punto y coma de esta línea (es posible que desee descomentar también otras cosas, pero esta línea es la única necesaria para Composer)

    ;extension=php_openssl.dll

Eso debería ser todo lo que necesita hacer. El instalador de Composer debería hacer todo lo que necesite desde aquí.

Machavity
fuente
2
Este es el ÚNICO lugar en línea con la solución correcta (para una configuración que no es WAMP). ¡Gracias!
Adamdehaven
11

Necesita habilitar "extension = php_openssl.dll" en ambos archivos (php y apache). la ruta de los archivos de mi 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
8

Esta es una pregunta antigua, pero tuve el mismo problema (con PHP7) y la solución fue, al final, bastante simple. Sin php.iniembargo, dejar de comentar la línea según las otras respuestas no fue suficiente. Necesitaba cambiarlo de:

;extension=php_openssl.dll

a:

extension=ext/php_openssl.dll

Tenga en cuenta el extprefijo. El dll ya existía pero estaba en una subcarpeta. Después de cambiar la configuración, el instalador de Composer estaba contento.

K Cartlidge
fuente
7

necesitas habilitar la extensión openssl en

C:\wamp\bin\php\php5.4.12\php.ini 

ese es el archivo de configuración php que tiene su tipo tiene "ajustes de configuración" con un icono de controlador-bloc de notas.

  1. ábralo con el bloc de notas o con cualquier editor,
  2. la búsqueda de openssl "su ctrl + F" sería suficiente.
  3. hay un punto y coma antes de la extensión openssl

    ;extension=php_openssl.dll

    quita el punto y coma y tendrás

    extension=php_openssl.dll
  4. guarde el archivo y reinicie su servidor WAMP después de eso, estará listo para comenzar. vuelva a instalar la aplicación que debería funcionar.
DLoneDeveloper
fuente
6

Hay dos php.iniarchivos, uno para desarrollo y otro para producción. Déjelos, hay otro php.iniarchivo para los ajustes de configuración justo encima de ellos con un icono de engranaje como editar eso.

keneth
fuente
Alternativamente, el mío no tenía un valor predeterminado. Simplemente copie / pegue el prod / dev one y cámbiele el nombre php.ini, luego realice las ediciones que otros han sugerido aquí.
Brynn Bateman
3

Después de editar los archivos "correctos" (todos los php.ini). Todavía tenía el problema. Mi solucion fue:

  1. Agregar una variable de sistema: OPENSSL_CONF

    el valor de OPENSSL_CONF debe ser el archivo openssl.cnf de su versión actual de php.

para mi fue:

  • C: \ wamp \ bin \ php \ php5.6.12 \ extras \ ssl \ openssl.cnf

-> Reiniciar WAMP -> debería funcionar ahora

Fuente: http://php.net/manual/en/openssl.installation.php

Mafu
fuente
2

Enfrenté el mismo problema, pero cuando buscaba php.ini y php.exe encontré php.exe en C: \ UwAmp \ bin \ php \ php-5.4.15 cuando php.ini en C: \ UwAmp \ bin \apache. Simplemente copio php.ini en C: \ UwAmp \ bin \ php \ php-5.4.15 y elimino el comentario de la extensión de línea = php_openssl.dll y se solucionó.

M. K Hossain
fuente
2

Estoy usando el servidor WAMP. En realidad, sus archivos mostraron que openssl está abierto. Pero manualmente fui a la carpeta y edité php.ini. Luego descubrí que no se ha abierto openssl. Lo descomenté y funcionó después del reinicio de WAMP.

tharanga
fuente
2

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

Busque la línea que dice:

;extension=php_openssl.dll

y elimine el punto y coma que precede a la línea. Reinicie los servicios de su servidor WAMP (haga clic en en la bandeja de iconos> 'Reiniciar todos los servicios'

yathavan
fuente
1

Si aún no puede resolver su problema, eche un vistazo a esto. Esta podría ser la solución que está buscando

Hay varios archivos php.ini en la carpeta C: \ wamp \ bin \ php \ php xyz. Puede encontrar archivos de producción, desarrollo y algunos otros archivos php.ini. No tiene sentido editar archivos de producción y desarrollo. Encuentre el archivo que es exactamente igual a la imagen de abajo. (Puede encontrarlo. Simplemente escriba php.ini en su barra de búsqueda y haga una búsqueda). Abra el archivo y elimínelo; de extensión = php_openssl.dll. Guarde el archivo y ciérrelo. Reinicie todos los servicios en el servidor Wampp. Vuelva a instalar su compositor.

Eso es.

ingrese la descripción de la imagen aquí

gihanmu
fuente
1

Wamp trabaja con otro php.ini que está en C: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini. Por lo tanto, debe encontrar manualmente el archivo correcto, que está en C: \ wamp \ bin \ php \ php5.4.12 \ php.ini. Descomente la línea extension = php_openssl.dll e intente instalar Composer nuevamente.

Dreyfi
fuente
1

Para aquellos que tienen el mismo problema que yo. Después de hacer todas las soluciones anteriores, todavía no funcionó para mí. Descubrí que uWamp estaba creando el archivo PHP.INI en el directorio bin / apache. Entonces tuve que copiar el archivo PHP.INI en el directorio de instalación de php, es decir, en el directorio bin / php / phpXXXX. Aquí también debería ser donde está el php.exe que seleccionó en la configuración del editor.

Espero que esto ayude.

Nitro Chummy
fuente
1

Si compiló desde la fuente, es posible que agregar extension=php_openssl.dllal archivo php.ini no funcione .

Para solucionar este problema, abra un símbolo del sistema y escriba php -i. Desplácese hasta la primera línea, le dirá el error más reciente con respecto a su archivo php.ini.

Para resolver el problema, busque el php_openssl.dllarchivo, para mí estaba en el mismo directorio de la salida de la compilación: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS así que simplemente agregue el directorio donde está la extensión, al php.ini:

extension_dir = "C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS"

Ojalá el error desaparezca

J11
fuente
0

Si está usando xampp, regrese a donde elige qué php de línea de comandos desea usar al comienzo de su instalación y seleccione la ruta donde se incluye su carpeta xampp. php_openssl.dll 'comente un archivo ssl en su php ini con un'; 'y su instalación debería ejecutarse sin problemas.

ricardo chitagu
fuente