webentwicklung-frage-antwort-db.com.de

Die openssl-Erweiterung ist für den SSL / TLS-Schutz erforderlich

composer create-project flarum/flarum . --stability=beta

Ich versuche, diesen Befehl auszuführen, aber es gab mir diesen Fehler.

  [RuntimeException]                                                           
  The openssl extension is required for SSL/TLS protection but is not availab  
  le. If you can not enable the openssl extension, you can disable this error  
  , at your own risk, by setting the 'disable-tls' option to true.  

Ich habe versucht, "extension = php_openssl.dll" zu "php.ini" hinzuzufügen, aber es ist immer noch dieser Fehler aufgetreten

50
Yang

Der gleiche Fehler ist mir aufgefallen. Ich habe es behoben, indem ich TLS für Composer deaktiviert habe, es ist nicht sicher aber ich habe das Risiko auf meinem Entwicklungscomputer übernommen.

versuche dies:

composer config -g -- disable-tls true

und führen Sie Ihren Composer erneut aus. Es funktioniert bei mir

Aber es ist unsicher und nicht für Ihren Server empfohlen. Die offizielle Website sagt:

Wenn diese Option auf "true" gesetzt ist, werden alle HTTPS-URLs stattdessen mit HTTP versucht und es wird keine Verschlüsselung auf Netzwerkebene durchgeführt. Das Aktivieren ist ein Sicherheitsrisiko und wird NICHT empfohlen. Der bessere Weg ist, die Erweiterung php_openssl in der php.ini zu aktivieren.

Wenn Sie keine unsichere Ebene in Ihrem Computer/Server aktivieren möchten, dann richten Sie Ihr PHP ein, um openssl zu aktivieren, und es funktioniert auch. Stellen Sie sicher, dass die Erweiterung PHP Openssl installiert wurde und aktivieren Sie sie in der Datei php.ini.


Um OpenSSL zu aktivieren, müssen Sie diese Zeile in Ihrer php.ini-Datei hinzufügen oder finden und auskommentieren:

Linux/OSx:

extension=php_openssl.so

Windows:

extension=php_openssl.dll

Und lade deinen PHP-FPM/Webserver bei Bedarf neu!

105

laut composer Referenz gibt es zwei relevante Optionen: disable-tls und secure-http.

nano ~/.composer/config.json ...

{
    "config": {
        "disable-tls": true,
        "secure-http": false
    }
}

dann klagt es viel:

You are running Composer with SSL/TLS protection disabled.
Warning: Accessing getcomposer.org over http which is an insecure protocol.

aber es führt die composer selfupdate (oder Wasauchimmer).

während man unter Linux nicht einfach "SSL in der php.ini aktivieren" kann; PHP muss mit openSSL kompiliert werden, das als shared Bibliothek konfiguriert ist - um von PHP CLI SAPI darauf zugreifen zu können.

13
Martin Zeitler

Um openssl zu aktivieren, gehe in die php.ini und aktiviere diese Zeile:

extension=php_openssl.dll

wenn Sie openssl nicht aktivieren möchten, können Sie composer verwenden Sie openssl nicht mit diesem Befehl:

composer config -g -- disable-tls true

dies ist jedoch ein Sicherheitsproblem.

9
Clairton Luz

Ich hatte genau das gleiche Problem und konnte keine Lösung finden. Nachdem ich eine Weile nachgedacht und nachgedacht hatte, stellte ich fest, dass meine PHP.INI anscheinend nicht im richtigen Verzeichnis für meine PHP Erweiterungen, so ging ich unter:

"Verzeichnis, in dem sich die ladbaren Erweiterungen (Module) befinden." Und fand folgendes:

; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
;extension_dir = "ext"

Und entfernte einfach das; Beachten Sie vor "extension_dir =" ext ", dass dies nur für Windows gilt. Entfernen Sie das Semikolon vor dem ersten extension_dir, wenn Sie ein anderes Betriebssystem ausführen.

Ich habe keine Ahnung, warum meine nicht bereits unmarkiert war, aber es ist nur etwas zu suchen, wenn Sie Probleme haben.

7

Dieses Problem tritt aufgrund von openssl und extension director auf, daher Kommentar unter den Erweiterungen in php.ini Datei

extension=php_openssl.dll extension_dir = "ext"

Es funktioniert auf meiner Maschine.

2
Vrushal Raut