Come abilitare l'estensione openssl di PHP per installare Composer?


113

Sto cercando di installare Laravel nella configurazione WAMP. Ricevo un messaggio di avviso per non aver abilitato openssl che avevo già fatto in WAMP.

Ecco uno screenshot del messaggio.

inserisci qui la descrizione dell'immagine


1
Controlla il percorso di PHP nella variabile d'ambiente %PATH%, forse Composer sta cercando PHP in un'altra posizione invece di WampServer.
Rubens Mariuzzo

Ho avuto lo stesso problema. Stavo modificando il php.ini dall'icona wamp. Ma l'ho fatto manualmente, ho riavviato il mio server e funziona.
themhz

Risposte:


121

È possibile che WAMP e Composer stiano utilizzando diverse installazioni PHP. Composer utilizzerà il set PHP nella PATHvariabile d'ambiente.

Se vuoi abilitare l' estensione openssl per installare Composer , prima devi controllare la posizione dell'installazione di PHP.

  1. Apri un prompt dei comandi, digita: echo %PATH%quindi verifica la posizione dell'installazione di PHP.
  2. Vai a quella posizione e modificare il file denominato: php.ini.
  3. extension=php_openssl.dllRimuovere il commento dalla riga rimuovendo il punto e virgola all'inizio.

Ora sei pronto per installare Composer.


2
È successo che non ho questa estensione sulla mia installazione XAMPP. Ho appena aggiunto (extension = php_openssl.dll) su php.ini e sta funzionando scaricando le dipendenze di laravel.
Adrian P.

8
quando digito echo %PATH%ottengo: 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.. non c'è nessun php installato in nessuna di queste directory .. cosa devo fare ora?
abbood

19
wamp sta usando questo php.ini: c: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini ma il compositore sta usando PHP dalla CLI, e quindi sta leggendo questo file: c: \ wamp \ bin \ php \ php5.4.12 \ php.ini (quindi è necessario abilitare openssl lì)
Enrique

2
Sto usando xampp, Composer dà lo stesso errore mancante di ssl aperto anche dopo aver rimosso il ';' dell'estensione openssl in php.ini.
Shashikumar Misal

30
Ho anche dovuto togliere il commento alla linea di extension_dir = "ext"in php.ini, ma sto utilizzando l'installazione di PHP normale invece di WAMP.
David Harkness

62

Ho risolto il mio problema in un modo diverso. Il problema è che la GUI di wamp era fuorviante: affermava che avevo php_opensslabilitato .. e se facevo clic sulla php.inistessa GUI .. in realtà mostrava che non extension=php_openssl.dllera commentato ..

Non sono sicuro di utilizzare la stessa versione di installazione del compositore dell'OP, ma in realtà ti chiede all'inizio di specificare il a php.execui ti piace applicare il compositore (il che sostanzialmente assicura che nessuno cerchi di applicare il compositore a l'eseguibile php sbagliato come quello che è successo con l'OP) ..

Il modo in cui ho risolto questo problema è stato andando io stesso all'installazione di php all'interno del pacchetto wamp: C:\wamp\bin\php\php5.4.12e guardando php.inlì .. quando l'ho aperto sono rimasto scioccato dal fatto che la riga extension=php_openssl.dllfosse effettivamente commentata! L'ho decommentato e ha funzionato perfettamente.

inserisci qui la descrizione dell'immagine


Grazie dopo aver letto questa risposta, ho capito che wamp stava usando 5.5.12 ma ho selezionato la directory 5.4 per php.exe
Afnan Bashir

In quale percorso risiedono i file libeay32.dllo liblibcrypto-*.dll? php.net/manual/de/openssl.installation.php
Bernhard Döbler

53

Ho avuto lo stesso problema e qui la soluzione che ho trovato, sul tuo php.ini devi fare alcune modifiche:

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

Tutti qui parlano di attiva l'estensione openssl, ma in Windows è necessario attivare anche l'estensione dir.


3
Uomini sei l'unico che ha menzionato il extension_dir, sei fantastico!
giannis christofakis

Questo ha funzionato per me. Avevo scaricato PHP direttamente come in questo turtorial .
derubato il

26

Per il server WAMP, il commento fornito da "Enrique" ha risolto il mio problema.

wamp sta usando questo php.ini :

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

Ma il compositore usa PHP dalla CLI e quindi sta leggendo questo file:

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

Per il compositore dovrai abilitare l'estensione in

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

Modificare:

;extension=php_openssl.dll 

per

extension=php_openssl.dll

Per MAMP, ho dovuto copiare il file php.ini da C: \ MAMP \ conf \ phpx.xx a C: \ MAMP \ bin \ php \ phpx.xx (\ conf \ .... a \ bin \ .. .)
Mike

15

Se lo stai facendo su Windows senza uno degli stack WAMP, ecco come farlo andare

  1. Scarica un'installazione di PHP per Windows . In genere si desidera un'installazione non thread-safe. È possibile utilizzare build a 32 o 64 bit
  2. Estrai il file zip da qualche parte. Suggerirei C:\php. Il programma di installazione di Composer l'ha trovato lì senza ulteriori richieste
  3. Le ultime versioni di PHP per Windows non vengono fornite con un file php.inipredefinito . Invece, vedrai due file, come indicato di seguito. Rinomina uno in php.inio copialo in php.ini.
    • php.ini-sviluppo
    • php.ini-produzione
  4. Apri il tuo php.inifile e rimuovi il punto e virgola da questa riga (potresti voler decommentare anche altre cose ma questa riga è l'unica necessaria per Composer)

    ;extension=php_openssl.dll

Dovrebbe essere tutto quello che devi fare. L'installer di Composer dovrebbe fare tutto il necessario da qui.


2
Questo è l'UNICO posto online con la soluzione corretta (per una configurazione non WAMP). Grazie!
adamdehaven

11

Devi abilitare "extension = php_openssl.dll" in entrambi i file (php e apache). il percorso dei file del mio pc sono questi:

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

8

Questa è una vecchia domanda, ma ho avuto lo stesso problema (con PHP7) e la soluzione è stata, alla fine, piuttosto semplice. Tuttavia, rimuovere i commenti dalla riga in php.inibase alle altre risposte non era abbastanza. Avevo bisogno di cambiarlo da:

;extension=php_openssl.dll

per:

extension=ext/php_openssl.dll

Nota il extprefisso. La dll esisteva già ma era in una sottocartella. Dopo aver cambiato la configurazione, l'installatore del compositore era felice.


7

è necessario abilitare l'estensione openssl in

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

questo è il file di configurazione php che ha il tipo ha "impostazioni di configurazione" con un'icona simile a un blocco note del driver.

  1. aprilo con il blocco note o qualsiasi editor,
  2. cerca openssl "il tuo ctrl + F" andrebbe bene.
  3. c'è un punto e virgola prima dell'estensione openssl

    ;extension=php_openssl.dll

    rimuovi il punto e virgola e avrai

    extension=php_openssl.dll
  4. salva il file e riavvia il server WAMP dopo di che sei a posto. reinstallare nuovamente l'applicazione che dovrebbe funzionare.

6

Sono disponibili due php.inifile, uno per lo sviluppo e uno per la produzione. Lascia quelli, c'è un altro php.inifile per le impostazioni di configurazione appena sopra di loro con un'icona a forma di ingranaggio modificalo.


In alternativa, il mio non aveva un valore predefinito. Basta copiare / incollare quello prod / dev e rinominarlo in php.ini, quindi apportare le modifiche che altri hanno suggerito qui.
Brynn Bateman

3

Dopo aver modificato i file "giusti" (tutti quelli di php.ini). avevo ancora il problema. La mia soluzione era:

  1. Aggiunta di una variabile di sistema: OPENSSL_CONF

    il valore di OPENSSL_CONF dovrebbe essere il file openssl.cnf della tua attuale versione di php.

per me è stato:

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

-> Riavvia WAMP -> dovrebbe funzionare ora

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


2

Ho affrontato lo stesso problema, ma quando stavo cercando php.ini e php.exe ho trovato php.exe in C: \ UwAmp \ bin \ php \ php-5.4.15 quando php.ini in C: \ UwAmp \ bin \ apache. Ho appena copiato php.ini in C: \ UwAmp \ bin \ php \ php-5.4.15 e rimosso il commento dall'estensione di riga = php_openssl.dll e ha risolto.


2

Sto usando il server WAMP. In realtà i suoi file hanno mostrato che openssl è aperto. Ma manualmente sono andato alla cartella e ho modificato php.ini. Poi ho scoperto che non ha aperto openssl. L'ho decommentato e ha funzionato dopo il riavvio di WAMP.


2

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

Sfoglia fino alla riga che dice:

;extension=php_openssl.dll

e rimuovere il punto e virgola che precede la riga. Riavvia i servizi del server WAMP (fai clic su nella barra delle icone> "Riavvia tutti i servizi"


1

Se ancora non riesci a risolvere il tuo problema, dai un'occhiata a questo. Questa potrebbe essere la soluzione che stai cercando

Ci sono diversi file php.ini nella cartella C: \ wamp \ bin \ php \ php xyz. Potresti trovare produzione, sviluppo e altri file php.ini. Non serve modificare i file di produzione e sviluppo. Trova il file che è esattamente uguale all'immagine sottostante. (Puoi trovarlo. Digita php.ini nella barra di ricerca ed esegui una ricerca). Apri il file e rimuovi; da extension = php_openssl.dll. Salva il file e chiudilo. Riavvia tutti i servizi nel server Wampp. Reinstalla il tuo compositore.

Questo è tutto.

inserisci qui la descrizione dell'immagine


1

Wamp funziona con un altro php.ini che si trova in C: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini. Quindi è necessario trovare manualmente il file corretto, che si trova in C: \ wamp \ bin \ php \ php5.4.12 \ php.ini. Rimuovere il commento dalla riga extension = php_openssl.dll e provare a installare nuovamente Composer.


1

Per coloro che stanno avendo lo stesso problema di me. Dopo aver eseguito tutte le soluzioni di cui sopra, ancora non ha funzionato per me. Ho scoperto che uWamp stava creando il file PHP.INI nella directory bin / apache. Quindi ho dovuto copiare il file PHP.INI nella directory di installazione di php, cioè la directory bin / php / phpXXXX. Questo dovrebbe anche essere dove si trova il php.exe che hai selezionato dalla configurazione del compositore.

Spero che questo ti aiuti.


1

Se hai compilato dal codice sorgente, l'aggiunta extension=php_openssl.dllal file php.ini potrebbe non funzionare .

Per risolvere questo problema, apri un prompt dei comandi e digita php -i. Scorri fino alla prima riga, ti dirà l'errore più recente relativo al tuo file php.ini.

Per risolvere il problema, trova il php_openssl.dllfile, per me era nella stessa directory dell'output della compilazione: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS quindi aggiungi semplicemente la directory in cui si trova l'estensione, a php.ini:

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

Si spera che l'errore sia andato


0

Se stai usando xampp, torna dove hai scelto quale riga di comando php vuoi usare all'inizio dell'installazione e seleziona il percorso in cui è inclusa la tua cartella xampp, dopodiché se il tuo programma di installazione dice che hai duplicato 'extension = php_openssl.dll 'commenta un file ssl nel tuo file ini php con un'; 'e l'installazione dovrebbe funzionare senza problemi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.