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 wurde immer noch dieser Fehler angezeigt
php
composer-php
Mike Yang
quelle
quelle
Antworten:
Der gleiche Fehler ist mir eingefallen. 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!
Es ist jedoch unsicher und wird für Ihren Server nicht empfohlen . Die offizielle Website sagt:
Wenn Sie keine unsichere Schicht auf Ihrem Computer / Server aktivieren möchten, richten Sie Ihre PHP so ein, dass openssl aktiviert wird, und es funktioniert auch . Stellen Sie sicher, dass die PHP Openssl-Erweiterung installiert wurde, und aktivieren Sie sie in der Datei php.ini.
Um OpenSSL zu aktivieren, fügen Sie diese Zeile in Ihrer php.ini-Datei hinzu oder suchen Sie sie und kommentieren Sie sie aus:
Linux / OSx:
Windows:
Und laden Sie Ihren PHP-Fpm / Webserver bei Bedarf neu!
quelle
nach dem Komponisten Referenz gibt es zwei relevante Optionen:
disable-tls
undsecure-http
.nano ~/.composer/config.json
(Wenn die Datei nicht existiert oder leer ist, erstellen Sie sie einfach mit dem folgenden Inhalt.){ "config": { "disable-tls": true, "secure-http": false } }
dann beschwert es sich viel:
aber es führt die
composer selfupdate
(oder was auch immer).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 über die PHP-CLI SAPI darauf zugreifen zu können .quelle
Ich hatte genau das gleiche Problem und konnte keine Lösung finden. Nachdem ich eine Weile nachgedacht und gesucht hatte, stellte ich fest, dass mein PHP.INI anscheinend nicht im richtigen Verzeichnis für meine PHP-Erweiterungen suchte, also 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 einfach das entfernt; 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.
quelle
Um openssl zu aktivieren, gehen Sie in die php.ini und aktivieren Sie diese Zeile:
Wenn Sie openssl nicht aktivieren möchten, können Sie festlegen, dass Composer openssl nicht mit diesem Befehl verwendet:
composer config -g -- disable-tls true
Dies ist jedoch ein Sicherheitsproblem.
quelle
/usr/local/share/ca-certificates/
, in die Sie Zertifikate einfügen , geben Sie unter Windows auf und suchen einen anderen Job.Dieses Problem tritt aufgrund von openssl und des Erweiterungsdirektors auf. Kommentieren Sie daher die Erweiterungen in der
php.ini
Datei ausextension=php_openssl.dll
extension_dir = "ext"
Es funktioniert auf meiner Maschine.
quelle
Ich hatte das gleiche Problem. Ich habe alles versucht, was auf dieser Seite aufgeführt ist. Als ich Composer neu installiert habe, hat es wie zuvor funktioniert. Ich hatte eine PHP-Versionsinkongruenz, die durch eine Neuinstallation behoben wurde, bei der die Abhängigkeiten mit dem in meinen Systemumgebungsvariablen installierten PHP-Pfad hergestellt wurden.
Ich empfehle den
composer config -g -- disable-tls true
Ansatz nicht.Der Weg, dies umzukehren, ist übrigens
composer config -g -- disable-tls false
.quelle
Ich füge dies einfach hinzu, weil es für mich funktioniert hat. Ich installiere Composer mit aktivierter Entwickleroption (aktivieren Sie einfach das Kontrollkästchen im Installationsprogramm).
https://getcomposer.org/Composer-Setup.exe
Ich denke, dieses Problem kann auftreten, wenn Sie Ihrem Wamp-Server eine neue Version von PHP hinzufügen. Wenn Sie dies tun, müssen Sie überprüfen, ob die Variable extension_dir auf "env" konfiguriert ist.
Überprüfen Sie dann, ob die Datei php_openssl.dll in Ihrem Ordner phpx.x / ext vorhanden ist . Wenn es keine php_openssl.dll gibt, müssen Sie sie hier herunterladen: http://www.telecharger-dll.fr/dll-php_openssl.dll.html
Wenn es immer noch nicht funktioniert, überprüfen Sie, ob Ihr Apache-Server die gute Datei php.ini verwendet, indem Sie den folgenden Befehl cmd ausführen:
php --ini Configuration File (php.ini) Path: C:\Windows Loaded Configuration File: C:\wamp64\bin\php\php7.4.7x64\php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
Wenn die geladene Konfigurationsdatei zurückgegeben wird (keine) , müssen Sie überprüfen, ob Ihre Datei appache / apache2.4.41 / conf / httpd.conf mit dem richtigen phpIniDir und dem richtigen Modul konfiguriert ist.
Es muss ungefähr so sein:
PHPIniDir "${APACHE_DIR}/bin" LoadModule php7_module "${INSTALL_DIR}/bin/php/php7.4.7x64/php7apache2_4.dll"
Starten Sie dann Apache neu und überprüfen Sie die "apache / apache2.4.41 / bin / php.ini" (die oben von PHPIniDir konfiguriert wurde), die mir gefallen muss
quelle
Nachdem ich alles ausprobiert hatte, gelang es mir endlich, dies zu regeln. Keine der oben genannten Lösungsvorschläge hat bei mir funktioniert. Mein System ist ein PC Windows 10. Um dies zu sortieren, musste ich die
config.json
hier befindliche Datei ändernC:\Users\[Your User]\AppData\Roaming\Composer\
. Dort finden Sie:{ "config": { "disable-tls": true}, "repositories": { "packagist": { "type": "composer", "url": "http://repo.packagist.org" // this needs to change to 'https' } } }
Hier müssen Sie die Repo-URL des Packagisten aktualisieren, um auf die URL-Version "https" zu verweisen.
Ich bin mir bewusst, dass die oben ausgewählte Lösung in 95% der Fälle funktioniert, aber wie gesagt, das hat bei mir nicht funktioniert. Hoffe das hilft jemandem.
Viel Spaß beim Codieren!
quelle
Für mich unter Windows 10 funktionierte nichts davon ... Ich hatte meinen lokalen Server von WAMP auf Laragon geändert und musste den neuen Pfad zur php.ini in den Umgebungsvariablen unter hinzufügen:
Systemsteuerung -> Erweiterte Systemeinstellungen -> Umgebungsvariablen -> Pfad (Doppelklick) -> Durchsuchen ... Navigieren Sie dann zur php.ini und klicken Sie auf OK.
Danach war ein Neustart erforderlich und jetzt funktioniert der Komponist wie ein Zauber!
quelle
Sie führen Composer mit deaktiviertem SSL / TLS-Schutz aus.
composer config --global disable-tls true composer config --global disable-tls false
quelle