Magento 2: Was verursacht den Fehler "Krypto konnte nicht aktiviert werden"?

7

Ich versuche, Magento 2.1 über das Composer-Metapaket mit dem folgenden Befehl zu installieren

composer create-project --repository=https://repo.magento.com/ magento/project-community-edition

Composer kann jedoch das packages.jsonvon repo.magento.comund die Berichte nicht aktualisieren

Die Datei " https://repo.magento.com/packages.json " konnte nicht heruntergeladen werden: Krypto konnte nicht aktiviert werden

Weiß jemand, was diesen Fehler "Krypto konnte nicht aktiviert werden" auslöst und wie jemand ihn beheben könnte?

Alan Storm
quelle
Beim Abrufen von Daten repo.magento.com muss authentifiziert werden. Sie sollten auth.json in Ihrem Stammverzeichnis haben, das den Benutzernamen und das Passwort des Magento-Repositorys enthält{ "http-basic": { "repo.magento.com": { "username": "a98186c7f7777dbb05d959bdb91b9729", "password": "344ce14c479f1c8eae77edb58b4ec66f" } } }
Aman Alam
@amanAlam Bist du sicher? Weil ich eine Weile eine auth.json hatte und es bis heute gut funktioniert hat. Der Fehler bezieht sich auch auf ein Kryptoproblem und nicht auf ein Authentifizierungsproblem. Was stellt sicher, dass es sich um einen Authentifizierungsfehler handelt?
Alan Storm
Nicht sehr sicher, da ich zuvor während der Installation einen Authentifizierungsfehler hatte und das Problem behoben wurde, sodass ich dachte, es könnte Ihnen helfen.
Aman Alam
Überprüfen Sie diesen Link, dies kann Ihnen helfen github.com/composer/composer/issues/4825
Aman Alam
@AlanStorm In Ihrem Codebeispiel --repository-urlist das nicht richtig geschrieben. Ich konnte die Bearbeitung nicht selbst vornehmen, da SE mindestens 6 Zeichen in einer Bearbeitung haben möchte und ich mich nicht mit Ihrer Frage anlegen wollte.
RyanF

Antworten:

6

Es hört sich so an, als hätte Magento sein HTTPS auf dem repo.magento.comServer stark verschärft .

Diese Einstellungen sind eng genug, damit bei Anwendungen, die HTTPS unterstützen, aber eine ältere Version von OpenSSL verwenden, die Verbindungen möglicherweise abgelehnt werden.

Das heißt, wenn die Version von PHP, die Sie zum Ausführen verwenden, composer.pharmit einer älteren Version von PHP verknüpft ist, wird der Fehler Fehler beim Aktivieren der Kryptografie angezeigt. Sie können Ihre PHP-Version mit dem folgenden Code-Snippet testen.

error_reporting(E_ALL);
$context = stream_context_create();
$contents = file_get_contents('https://repo.magento.com/packages.json', false, $context);

Der Grund, warum ich diesen Fehler bekam, war / ist die gepackte Version von PHP, die ich (je nachdem, wie Sie zählen) seit fast 13 Jahren verwende, eine Verknüpfung mit einer älteren Version von SSL. Die Paketbetreuer haben einen neuen Build veröffentlicht, der diese Probleme zu beheben scheint.

Wenn Sie eine andere gepackte Version von PHP verwenden, müssen Sie die Paketbetreuer unter Druck setzen, einen neuen Build zu veröffentlichen, der dies behebt, oder Magento unter Druck setzen, dasselbe zu tun.

Wenn Sie selbst eine Version von PHP erstellen (von Hand, über brewusw.), stellen Sie sicher, dass Sie eine so moderne Version von OpenSSL mit moderner TLS-Unterstützung verwenden (ich habe diese Wörter möglicherweise falsch verwendet, kein HTTPS / SSL-Experte durch jede Strecke)

Alan Storm
quelle
4

Ich habe das Problem behoben, indem ich das OS X-Liip-Paket aktualisiert habe

http://php-osx.liip.ch

Sie müssen nur den einzeiligen Befehl auf dieser Seite ausführen

Quelle: http://devdocs.magento.com/guides/v2.0/release-notes/tech_bull_tls-repo.html

BEARBEITEN: Überprüfen Sie anschließend, ob Sie die aktualisierte Version mit php -vund verwendenwhich php

Vielen Dank, dass Sie @AlanStorm!

mrzhero
quelle
2
Das Aktualisieren des OS X liip-Pakets hat bei mir funktioniert. Ohne mehr zu wissen, wenn Sie immer noch den Kryptofehler sehen, würde ich vermuten, dass Sie nicht die neueste Liip-Version ausführen.
Alan Storm
Oh mein Gott, das war SCHNELL! : D Ja, Sie hatten Recht, ich habe nicht die neueste Version verwendet. Ich habe einen Alias ​​für php5.6 in mein bash_profile gesetzt und es hat funktioniert! Nochmals vielen Dank Alan!
Mrzhero
-1

Ich bin nicht sicher, was diesen Fehler verursachen würde, abgesehen von etwas, das möglicherweise damit zusammenhängt, dass Composer eine gesicherte Verbindung über https herstellt. Aber das ist nur eine Vermutung.

Ich habe gerade den Befehl ausgeführt und er war erfolgreich.

Vielleicht versuchen Sie es noch einmal? Ich entschuldige mich dafür, dass ich nicht mehr Einblicke gewährt habe.

ryanF
quelle