Ich versuche, eine Drupal 8-Site zu verschieben, erhalte jedoch die folgende Fehlermeldung:
Auf der Website ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.
InvalidArgumentException: Klasse "\ Drupal \ system \ Controller \ Http4xxController" existiert nicht. in Drupal \ Core \ DependencyInjection \ ClassResolver-> getInstanceFromDefinition () (Zeile 29 von core / lib / Drupal / Core / DependencyInjection / ClassResolver.php).
Wie verschiebe ich eine Drupal 8-Site ordnungsgemäß von einem Server auf einen anderen?
Ich habe die Datenbank importiert, die Dateien verschoben und die Einstellungen für die Datenbankverbindung geändert.
Antworten:
Kurz gesagt, das Verschieben einer Drupal-Website von einem Host auf einen anderen ist nur eine Frage des Verschiebens der Dateien und der Datenbank und des anschließenden Verbindens der beiden.
Es gibt jedoch einige Dinge, die Sie berücksichtigen müssen:
Die Serverumgebung sollte so nah wie möglich beieinander liegen. Auf diese Weise vermeiden Sie Fehler, die auf unterschiedliche Software / Konfiguration auf Produktions- und Entwicklungsservern zurückzuführen sind. Vergleichen Sie die PHP-Version, die MySQL-Version, die Apache-Module und das Setup all dieser Komponenten.
Dateiberechtigungen müssen ordnungsgemäß eingerichtet sein. Ich habe Dutzende Male Probleme gesehen, die dadurch verursacht wurden. Kurz gesagt, der Apache-Benutzer muss über ausreichende Berechtigungen verfügen, um auf Ihre Drupal-Website zugreifen und mit ihr arbeiten zu können. Andernfalls kann es in einigen Fällen keine Dateien schreiben und sogar lesen. Weitere Informationen zum Sichern korrekter Dateiberechtigungen finden Sie hier .
Wenn Sie dies manuell über FTP tun, stellen Sie sicher, dass alle Dateien übertragen werden. Es kommt oft vor, dass eine der Dateien nicht vollständig hochgeladen wurde. Dies führt normalerweise zu einer fehlerhaften Drupal-Site und zufälligen Fehlern. Andere Möglichkeiten zum Migrieren einer D8-Website sind Drush, Git oder das einfache Zippen des gesamten Verzeichnisses und die
wget
direkte Übertragung auf dem anderen Server von Server zu Server.Sie müssen alle Caches löschen. Vorzugsweise sind CSS / JS-Aggregation und Seiten-Caching bei der Migration der Datenbank nicht aktiviert. Sie können dies über SQL / phpMyAdmin tun. Weitere Informationen finden Sie in dieser Antwort.
Aktualisieren Sie vertrauenswürdige Hosts in der
/sites/default/settings.php
Datei.Sobald Sie auf Ihre Website zugreifen können, aktualisieren Sie den temporären Verzeichnispfad
/admin/config/media/file-system
unter sowie alle anderen Einstellungen (z. B. von Contrib-Modulen), in denen Serverpfade / Domänennamen gespeichert sind.Siehe auch Dokumente zur Migration einer D7-Site . Die meisten Artikel gelten weiterhin für D8.
Wenn Sie die oben genannten Richtlinien befolgen, vermeiden Sie die meisten Probleme. Wenn Sie nach der Migration immer noch Probleme haben, geben Sie hier die genauen Protokollnachrichten an, die Sie erhalten.
In Bezug auf den Fehler, den Sie bereits gepostet haben: Ich würde sicherstellen, dass alle Dateien vorhanden sind und dass Ihr Cache geleert wird, bevor Sie etwas anderes tun.
Hoffe das hilft.
quelle
Ich habe den gleichen Fehler beim Portieren von Drupal 8 auf localhost erhalten.
In meinem Fall habe ich eine Lösung gefunden, indem ich den Speicherort mysite / core / install.php besucht habe .
Dort sah ich einen detaillierten Fehler: Beim Sichern von / admin / config / development / backup_migrate fehlten einige Tabellen. Also habe ich die vollständige Datenbank von phpmyadmin gesichert und das Problem wurde behoben.
quelle