Sie müssen die openssl-Erweiterung aktivieren, um Dateien über https herunterladen zu können

123

Ich wollte Zend Framework 2 installieren. Also habe ich die Skeleton-Anwendung heruntergeladen. Wie im ZF2-Handbuch erwähnt, müssen wir den Befehl ausgeben

php composer.phar install 

Im Skelett.

Aber ich bekomme einen Fehler

Sie müssen die openssl-Erweiterung aktivieren, um Dateien über https herunterladen zu können

Dann habe ich das ssl_module in meinem Wamp aktiviert, die php_ini-Datei überprüft und die folgende Zeile angezeigt

extension = php_openssl.dll

Trotzdem bekomme ich den gleichen Fehler. Hat jemand eine Ahnung, was ich verpasst habe?

Uttam Dutta
quelle
1
Ich hatte dieses Problem beim Ausführen von travis-ci und es stellte sich heraus, dass im Gegensatz zu jeder Linux-Distribution unter der Sonne einige der älteren travis-ci-Umgebungen ohne openssl kompiliert wurden, nur für den Fall, dass jemand anderes auf dasselbe Problem stößt.
Kzqai
@Kzqai ist es möglich, diese erweiterung in travis zu kompilieren, wie in meiner frage für PHP 5.3.3 ? Ich sehe aus ihrem Kochbuch, dass Sie PECL-Erweiterungen installieren können, aber ich glaube nicht, dass die openssl-Erweiterung über PECL verfügbar ist.
Jeff Puckett

Antworten:

286

PHP CLI SAPI verwendet andere php.ini Modul als CGI oder Apache.

Suchen Sie die Zeile ;extension=php_openssl.dllin wamp/bin/php/php#.#.##/php.ini und kommentieren Sie sie aus, indem Sie das Semikolon ( ;) vom Zeilenanfang entfernen .

BorisS
quelle
Ich musste auch die phar-Erweiterung (extension = php_phar.dll) und wie unten erwähnt das apache ssl-Modul aktivieren!
Diego Favero
1
"PHP CLI SAPI verwendet eine andere php.ini als das CGI- oder Apache-Modul." Das war der Trick!
George D.
Wenn Sie diese Zeile in Ihrem nicht finden können, php.inifügen Sie einfach die Zeile extension=php_openssl.dllunter dem Teil "Dynamische Erweiterungen" hinzu.
Totymedli
Ich verwende xampp, Composer gibt den gleichen offenen SSL-Fehler aus, auch nachdem das ';' der openssl-Erweiterung in der php.ini.
Shashikumar Misal
Wenn Sie Mac und verwenden port, können Sie die PHP-Version von auswählen port select php php55und die Erweiterung installierenport install php55-openssl
Prabowo Murti
36

Stellen Sie sicher, dass Sie die richtige php.ini-Datei bearbeiten.

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

"WAMP verwendet verschiedene php.ini-Dateien in der CLI und für Apache. Wenn Sie php_openssl über die WAMP-Benutzeroberfläche aktivieren, aktivieren Sie es für Apache, nicht für die CLI. Sie müssen C: \ wamp \ bin \ php \ php- ändern. XYZ \ php.ini, um es für die CLI zu aktivieren. "

Duramba
quelle
2
Wer hätte das gedacht ... Wirklich ... Das hat das Problem gelöst. Danke
Ruwantha
20

Stellen Sie sicher, dass Sie den richtigen Pfad zum Erweiterungsordner haben

extension_dir = "ext"

standardmäßig ist es kommentiert mit; Charakter

Adam Kopciński
quelle
1
Diese Zeile wurde komplett
auskommentiert
wichtig für die Windows-Installation!
haakym
Wo ist diese Linie? In welcher Datei? die php.ini in 1, C: \ wamp64 \ bin \ apache ODER 2. C: \ wamp64 \ bin \ php \ php7.0.0?
MyDaftQuestions
9

Ich hatte auch das gleiche Problem beim Spielen mit Zend Framework 2 und Composer. Ich verwende PHP 5.4 (über Macports installiert) und meine Lösung bestand darin, openssl für PHP 5.4 auch über Macports zu installieren.

sudo port install php54-openssl
Freddy Duarte
quelle
5

Ich bin mit diesem Problem konfrontiert, aber das Konfigurieren von openssl (auch für cli) hat nicht geholfen.

Ich habe den Komponisten aktualisiert und dies hat mein Problem behoben.

Schreib einfach:

$ php composer.phar self-update

oder

$ composer selfupdate

Viel Glück!

Athlan
quelle
4

Ich benutze XAMPP. In C: \ xampp \ php \ php.ini war der Eintrag für openssl nicht vorhanden, daher habe ich in Zeile 989 "extension = php_openssl.dll" hinzugefügt, und der Komponist hat gearbeitet.

Andrew Koper
quelle
4

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
Das ist falsch. Überprüfen Sie mit phpinfo (), welche php.ini verwendet wird
ThaDafinser
3

Uttam, wenn Ihr Problem nicht gelöst ist, versuchen Sie den folgenden 3-Schritt-Ansatz. Es hat bei mir funktioniert, da ich genau das gleiche Problem hatte.

Schritt 1: Klicken Sie auf das Wamp Tray-Symbol.

Schritt 2: Gehe zu Menü Apache-> Apache-Module

Schritt 3: Klicken Sie auf den Menüpunkt "ssl_module".

Wamp wird automatisch neu gestartet. Wenn Wamp nicht automatisch neu gestartet wird, starten Sie es über das Wamp Tray-Menü neu-> Alle Dienste neu starten. Vergewissern Sie sich nach dem Neustart, dass "ssl_module" unter dem Menü apache-> apache modules aktiviert ist

Danach versuchen Sie einfach, dass die Installation von php composer.phar die von Ihnen gemeinsam genutzte Antwort durchläuft. Die Datei php.ini enthält die Erweiterung = php_openssl.dll und das Verzeichnis php / ext enthält auch die Datei "php_openssl.dll".

Viel Glück

adang
quelle
3

Die Antwort von Valery hat mir geholfen: https://stackoverflow.com/a/14265815/492457

WAMP verwendet verschiedene php.ini-Dateien in der CLI und für Apache. Wenn Sie php_openssl über die WAMP-Benutzeroberfläche aktivieren, aktivieren Sie es für Apache und nicht für die CLI. Sie müssen C: \ wamp \ bin \ php \ php-5.4.3 \ php.ini ändern, um es für die CLI zu aktivieren.

Karlisup
quelle
2

Stellen Sie sicher, dass Sie Ihre php.inifür aktualisieren CLI. Für meinen Fall war dies eine C:\wamp\bin\php\php5.4.3\php.iniunkommentierte extension=php_openssl.dllZeile.

Codarrior
quelle
1

Späte Antwort, aber Hinzufügen, damit andere den Grund erfahren können.

Sie müssen auch die Datei php.ini im Speicherort "wamp \ bin \ php \ php-XYZ" bearbeiten.

Shah Alom
quelle
0

Ich musste uncomment extension=opensslin php.iniDatei für alles an der Arbeit!

Harshit Agrawal
quelle
0

Seien Sie vorsichtig, wenn Sie wamp verwenden. Verwenden Sie nicht die wamp-Benutzeroberfläche, um das zu aktivieren extension=php_openssl.dll

Gehen Sie einfach in Ihr PHP-Verzeichnis, zum Beispiel: C:\wamp\bin\php\php5.4.12und bearbeiten Sie das php.iniund kommentieren Sie das aus extension=php_openssl.dll.

es sollte funktionieren.

meti
quelle