Wie aktiviere ich die OpenSL-Erweiterung von PHP, um Composer zu installieren?

113

Ich versuche, Laravel im WAMP-Setup zu installieren. Ich erhalte eine Warnmeldung, dass openssl nicht aktiviert wurde, was ich bereits in WAMP getan habe.

Hier ist ein Screenshot der Nachricht.

Geben Sie hier die Bildbeschreibung ein

FirmView
quelle
1
Überprüfen Sie den Pfad von PHP in der Umgebungsvariablen %PATH%. Möglicherweise sucht Composer an anderer Stelle nach PHP anstelle von WampServer.
Rubens Mariuzzo
Ich hatte das gleiche Problem. Ich habe die php.ini über das Wamp-Symbol bearbeitet. Aber ich habe es manuell gemacht, meinen Server neu gestartet und es funktioniert.
Themhz

Antworten:

121

Es ist möglich, dass WAMP und Composer unterschiedliche PHP-Installationen verwenden. Composer verwendet das in der PATHUmgebungsvariablen festgelegte PHP .

Wenn Sie die openssl- Erweiterung aktivieren möchten, um Composer zu installieren , müssen Sie zuerst den Speicherort der PHP-Installation überprüfen.

  1. Öffnen Sie eine Eingabeaufforderung, geben Sie Folgendes ein und echo %PATH%überprüfen Sie den Speicherort Ihrer PHP-Installation.
  2. Gehen Sie zu diesem Speicherort und bearbeiten Sie die Datei mit dem Namen : php.ini.
  3. Kommentieren Sie die Zeile extension=php_openssl.dllaus, indem Sie das Semikolon am Anfang entfernen.

Jetzt können Sie Composer installieren.

Rubens Mariuzzo
quelle
2
Es kommt vor, dass ich diese Erweiterung in meiner XAMPP-Installation nicht habe. Ich habe gerade (extension = php_openssl.dll) auf der php.ini hinzugefügt und es funktioniert beim Herunterladen von Laravel-Abhängigkeiten.
Adrian P.
8
Wenn ich tippe, echo %PATH%bekomme ich: 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.. in keinem dieser Verzeichnisse ist PHP installiert .. was mache ich jetzt?
Abbood
19
wamp verwendet diese php.ini: c: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini, aber Composer verwendet PHP von der CLI und liest daher diese Datei: c: \ wamp \ bin \ php \ php5.4.12 \ php.ini (also müssen Sie openssl dort aktivieren)
Enrique
2
Ich verwende xampp, Composer gibt den gleichen offenen SSL-Fehler aus, auch nachdem das ';' der openssl-Erweiterung in der php.ini.
Shashikumar Misal
30
Ich musste auch die Linie Kommentar- extension_dir = "ext"in php.ini, aber ich bin mit der einfachen PHP - Installation statt WAMP.
David Harkness
62

Ich habe mein Problem anders gelöst. Das Problem ist, dass die Benutzeroberfläche von wamp irreführend war: Sie behauptete, ich hätte sie php_opensslaktiviert. Wenn ich php.iniauf dieselbe Benutzeroberfläche klickte, zeigte sich tatsächlich, dass dies nicht extension=php_openssl.dllkommentiert war.

Ich bin mir nicht sicher, ob ich dieselbe Installationsversion des Composer des OP verwende, aber Sie werden zu Beginn aufgefordert, das anzugeben, auf das php.exeSie den Composer anwenden möchten (was im Grunde sicherstellt, dass niemand versucht, den Composer anzuwenden die falsche PHP-ausführbare Datei als was mit dem OP passiert ist) ..

Die Art und Weise, wie ich das gelöst habe, war, mich in die Installation von PHP innerhalb des Wamp-Pakets zu begeben: C:\wamp\bin\php\php5.4.12und php.indort nachzuschauen . Als ich es öffnete, war ich schockiert, dass die Zeile extension=php_openssl.dlltatsächlich kommentiert wurde! Ich habe es auskommentiert und es hat gut funktioniert.

Geben Sie hier die Bildbeschreibung ein

Abbood
quelle
Vielen Dank, nachdem ich mir diese Antwort angesehen hatte, fand ich heraus, dass wamp 5.5.12 verwendet, aber ich wählte das 5.4-Verzeichnis für php.exe
Afnan Bashir
In welchem ​​Pfad befinden sich die Dateien libeay32.dlloder liblibcrypto-*.dllbefinden sich? php.net/manual/de/openssl.installation.php
Bernhard Döbler
53

Ich hatte das gleiche Problem und hier die Lösung, die ich gefunden habe, auf Ihrer php.ini müssen Sie einige Änderungen vornehmen:

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

Jeder hier spricht aktiv die openssl-Erweiterung, aber in Windows müssen Sie auch das Erweiterungsverzeichnis aktivieren.

Francisco Cabral
quelle
3
Männer, du bist der einzige, der das erwähnt hat extension_dir, du bist großartig!
Giannis Christofakis
Das hat bei mir funktioniert. Ich hatte PHP wie in diesem Turtorial direkt heruntergeladen .
beraubt
26

Für den WAMP-Server löste der Kommentar von "Enrique" mein Problem.

wamp benutzt diese php.ini :

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

Aber Composer verwendet PHP von CLI und liest daher diese Datei:

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

Für Komponisten müssen Sie die Erweiterung in aktivieren

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

Veränderung:

;extension=php_openssl.dll 

zu

extension=php_openssl.dll
user3887814
quelle
Für MAMP musste ich die Datei php.ini von C: \ MAMP \ conf \ phpx.xx nach C: \ MAMP \ bin \ php \ phpx.xx (\ conf \ .... nach \ bin \ .. kopieren). .)
Mike
15

Wenn Sie dies unter Windows ohne einen der WAMP-Stapel tun, erfahren Sie hier, wie Sie dies in Gang bringen

  1. Laden Sie eine Installation von PHP für Windows herunter . Im Allgemeinen möchten Sie eine nicht threadsichere Installation. Sie können 32-Bit- oder 64-Bit-Builds verwenden
  2. Extrahieren Sie die Zip-Datei irgendwo. Ich würde vorschlagen C:\php. Das Installationsprogramm von Composer hat es dort ohne zusätzliche Aufforderung gefunden
  3. Die neuesten Versionen von PHP für Windows enthalten php.inistandardmäßig keine . Stattdessen werden zwei Dateien angezeigt, wie unten angegeben. Benennen Sie eine um php.inioder kopieren Sie sie in php.ini.
    • php.ini-entwicklung
    • php.ini-produktion
  4. Öffnen Sie Ihre php.iniDatei und entfernen Sie das Semikolon aus dieser Zeile (möglicherweise möchten Sie auch andere Dinge auskommentieren, aber diese Zeile ist die einzige, die für Composer erforderlich ist).

    ;extension=php_openssl.dll

Das sollte alles sein, was Sie tun müssen. Das Composer-Installationsprogramm sollte von hier aus alles andere tun, was Sie benötigen.

Machavity
quelle
2
Dies ist der EINZIGE Online-Ort mit der richtigen Lösung (für ein Nicht-WAMP-Setup). Vielen Dank!
Adamdehaven
11

Sie müssen "extension = php_openssl.dll" in beiden Dateien (php und apache) aktivieren. Mein PC-Dateipfad sind folgende:

  1. C: \ wamp \ bin \ php \ php5.3.13 \ php.ini
  2. C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini
Mohammed Saqib Rajput
quelle
8

Dies ist eine alte Frage, aber ich hatte gerade das gleiche Problem (mit PHP7) und die Lösung war am Ende ziemlich einfach. Es reichte jedoch nicht aus, die Zeile php.inigemäß den anderen Antworten zu kommentieren . Ich musste es ändern von:

;extension=php_openssl.dll

zu:

extension=ext/php_openssl.dll

Beachten Sie das extPräfix. Die DLL war bereits vorhanden, befand sich jedoch in einem Unterordner. Nach dem Ändern der Konfiguration war das Composer-Installationsprogramm zufrieden.

K Cartlidge
quelle
7

Sie müssen die openssl-Erweiterung in aktivieren

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

das ist die PHP-Konfigurationsdatei, deren Typ "Konfigurationseinstellungen" mit einem Treiber-Notepad-ähnlichen Symbol hat.

  1. Öffnen Sie es entweder mit dem Editor oder einem beliebigen Editor.
  2. Suche nach openssl "Ihre Strg + F" würde reichen.
  3. Vor der openssl-Erweiterung befindet sich ein Semikolon

    ;extension=php_openssl.dll

    Entfernen Sie das Semikolon und Sie haben

    extension=php_openssl.dll
  4. Speichern Sie die Datei und starten Sie Ihren WAMP-Server neu. Danach können Sie loslegen. Installieren Sie die Anwendung erneut, die funktionieren soll.
DLoneDeveloper
quelle
6

Es gibt zwei php.iniDateien, eine für die Entwicklung und eine für die Produktion. Lassen Sie diese, es gibt eine andere php.iniDatei für Konfigurationseinstellungen direkt über ihnen mit einem Zahnrad wie Symbol bearbeiten, das.

Keneth
quelle
Alternativ hatte meine keine Standardeinstellung. Kopieren Sie einfach das Produkt / den Entwickler und fügen Sie es in php.inium. Nehmen Sie dann die Änderungen vor, die andere hier vorgeschlagen haben.
Brynn Bateman
3

Nach dem Bearbeiten der "richtigen" Dateien (alle php.ini). Ich hatte immer noch das Problem. Meine Lösung war:

  1. Hinzufügen einer Systemvariablen: OPENSSL_CONF

    Der Wert von OPENSSL_CONF sollte die Datei openssl.cnf Ihrer aktuellen PHP-Version sein.

für mich war es:

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

-> WAMP neu starten -> sollte jetzt funktionieren

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

Mafu
quelle
2

Ich hatte das gleiche Problem, aber als ich nach php.ini und php.exe suchte, fand ich php.exe unter C: \ UwAmp \ bin \ php \ php-5.4.15, als php.ini unter C: \ UwAmp \ bin \Apache. Ich kopiere einfach php.ini unter C: \ UwAmp \ bin \ php \ php-5.4.15 und kommentiere die Zeilenerweiterung = php_openssl.dll aus und es wurde behoben.

M. K. Hossain
quelle
2

Ich benutze den WAMP-Server. Tatsächlich zeigten seine Dateien, dass openssl geöffnet ist. Aber manuell ging ich in den Ordner und bearbeitete php.ini. Dann habe ich festgestellt, dass es openssl nicht geöffnet hat. Ich habe es auskommentiert und es hat nach dem Neustart von WAMP funktioniert.

Tharanga
quelle
2

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

Navigieren Sie zu der Zeile mit der Aufschrift:

;extension=php_openssl.dll

und entfernen Sie das Semikolon vor der Zeile. Starten Sie Ihre WAMP-Serverdienste neu (klicken Sie in die Symbolleiste> "Alle Dienste neu starten").

Yathavan
quelle
1

Wenn Sie Ihr Problem immer noch nicht lösen können, schauen Sie sich das an. Dies könnte die Lösung sein, nach der Sie suchen

Es gibt mehrere php.ini-Dateien im Ordner C: \ wamp \ bin \ php \ php xyz. Möglicherweise finden Sie Produktions-, Entwicklungs- und einige andere php.ini-Dateien. Es macht keinen Sinn, Produktions- und Entwicklungsdateien zu bearbeiten. Suchen Sie die Datei, die genau der Abbildung unten entspricht. (Sie können es finden. Geben Sie einfach php.ini in Ihre Suchleiste ein und führen Sie eine Suche durch.) Öffnen Sie die Datei und entfernen Sie sie. von extension = php_openssl.dll. Speichern Sie die Datei und schließen Sie sie. Starten Sie alle Dienste auf dem Wampp-Server neu. Installieren Sie Ihren Composer neu.

Das ist es.

Geben Sie hier die Bildbeschreibung ein

gihanmu
quelle
1

Wamp funktioniert mit einer anderen php.ini in C: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini. Sie müssen also manuell die richtige Datei finden, die sich in C: \ wamp \ bin \ php \ php5.4.12 \ php.ini befindet. Kommentieren Sie die Zeile extension = php_openssl.dll aus und versuchen Sie einfach, Composer erneut zu installieren.

Dreyfi
quelle
1

Für diejenigen, die das gleiche Problem haben wie ich. Nachdem ich alle oben genannten Lösungen durchgeführt hatte, funktionierte es immer noch nicht für mich. Ich fand heraus, dass uWamp die PHP.INI-Datei im Verzeichnis bin / apache erstellt. Also musste ich die PHP.INI-Datei in das PHP-Installationsverzeichnis kopieren, dh in das Verzeichnis bin / php / phpXXXX. Hier sollte sich auch die php.exe befinden, die Sie im Composer-Setup ausgewählt haben.

Hoffe das hilft.

Nitro Chummy
quelle
1

Wenn Sie aus dem Quellcode kompiliert haben, extension=php_openssl.dllfunktioniert das Hinzufügen zur Datei php.ini möglicherweise nicht .

Um dies zu beheben, öffnen Sie eine Eingabeaufforderung und geben Sie ein php -i. Scrollen Sie zur ersten Zeile, um den neuesten Fehler in Bezug auf Ihre Datei php.ini anzuzeigen.

Um das Problem zu beheben, suchen Sie die php_openssl.dllDatei, die sich für mich im selben Verzeichnis wie die Kompilierungsausgabe befand: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS Fügen Sie also einfach das Verzeichnis hinzu, in dem sich die Erweiterung befindet php.ini:

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

Hoffentlich ist der Fehler weg

J11
quelle
0

Wenn Sie xampp verwenden. Gehen Sie zurück zu dem Punkt, an dem Sie auswählen, welches Befehlszeilen-PHP Sie zu Beginn Ihrer Installation verwenden möchten, und wählen Sie den Pfad aus, in dem Ihr xampp-Ordner enthalten ist. Danach, wenn Ihr Installationsprogramm angibt, dass Sie die doppelte Erweiterung = php_openssl.dll 'kommentiere eine SSL-Datei in deiner PHP-INI mit einem'; 'und deine Installation sollte reibungslos funktionieren.

Ricardo Chitagu
quelle