So migrieren Sie die Unterwebsite von dev multisite zu Production multisite

12

Ich suche nach der besten und sichersten Möglichkeit, eine Reihe von Unterwebsites mithilfe von Multisite lokal zu entwickeln und sie in die Produktionsumgebung zu verschieben, wenn sie bereit sind.

Ich habe bereits die vollständige Multisite-Installation mit der ersten Subsite migriert, die jetzt live ist. Ich würde es vorziehen, die anderen Sites auf dem lokalen Server zu entwickeln, damit ich den Produktionsserver in Ruhe lasse, aber natürlich kann ich keine vollständige Migration mehr durchführen.

Ich habe nach einer Lösung gesucht, aber bei allem, was ich gefunden habe, geht es darum, eine einzelne Site auf eine Multisite zu verschieben oder umgekehrt, keine "Subsite von Multisite zu Multisite verschieben".

Ich möchte alles behalten: Einstellungen, Widgets und so weiter.

Molokom
quelle
1
Ich denke, dass das kommerzielle BackupBuddy-Plugin dies kann, aber ich wäre daran interessiert, allgemeinere Antworten darauf zu sehen.
Rarst
Aufgrund der serialisierten Zeichenfolgen in der Datenbank ist dies nicht so einfach. Ich habe bisher noch kein Plugin für eine reine Migration gesehen, aber das sollte unbedingt getan werden. Das einzige Problem beim Verschieben der "meisten" Teile eines Blogs in ein anderes war der XML-Export- / Importmechanismus, aber Sie müssen danach noch viele Pfade korrigieren.
2. Kauboy
1
Die beste Option ist, dies mit einer direkten SQL-Abfrage zu tun. Ich habe es mehr als einmal gemacht und es funktioniert gut, wenn Sie vorsichtig genug sind.
krembo99
@ krembo99, könntest du etwas näher auf deine Technik eingehen?
Molokom
@Rarst, was BackupBuddy betrifft, geht dies aus den häufig gestellten Fragen hervor: "Nein. Die Unterstützung von BackupBuddy Multisite ist experimentell. Sie wird für Produktionsstandorte nicht empfohlen und wird nicht offiziell unterstützt."
Molokom

Antworten:

4

Das kann etwas langweilig sein, aber hoffentlich hilft das. Je weniger sich von einer Umgebung zur nächsten ändert, desto weniger schmerzhaft wird dieser Prozess sein. Insbesondere wenn die Domäne, die Site-ID und die Dateipfade gleich bleiben, ist dieser Vorgang weniger schmerzhaft.

Dieser Beitrag setzt einige Kenntnisse der Datenbankverwaltung voraus. Es ist nicht vollständig Schritt für Schritt, da Sie die Foren durchsuchen und möglicherweise einen Thread erstellen sollten, der für den Schritt spezifisch ist, mit dem Sie Probleme haben, z. B. wenn Sie Hilfe beim Exportieren einer Datenbanktabelle benötigen.

Das Wichtigste ist, Ihre gesamte Datenbank und Dateien sowohl für die lokale Entwicklungssite als auch für den neuen Speicherort zu sichern, falls etwas schief geht. Erwarten Sie, dass etwas schief geht. Seien Sie angenehm überrascht, wenn dies nicht der Fall ist.

Das Verschieben Ihrer Themendateien sollte ziemlich einfach sein. Laden Sie Ihre Themendateien in das Verzeichnis wp-content / theme hoch und aktivieren Sie es wie gewohnt. Ich gehe davon aus, dass dies ein gemeinsames Thema ist, auf das alle Blogs Zugriff haben.

Laden Sie Plugin-Dateien in wp-content / plugins am neuen Speicherort hoch. Aktiviere sie noch nicht.

Beachten Sie, dass sich alle Inhalte, die ausschließlich für das zu migrierende Blog gelten, in einem Verzeichnis befinden, das so aussieht, als wäre wp-content/blogs.dir/2/files2 die Site-ID. Wenn es möglich ist, diese Site-ID am neuen Speicherort zu verwalten, sollte dies dazu beitragen, Konflikte in der Datenbank nach der Migration an den neuen Speicherort zu minimieren. Andernfalls müssen Sie Ihre Datenbank aktualisieren, um den neuen Pfad wiederzugeben.

Sie müssen die Multisite-Tabellen für das Blog, das Sie migrieren möchten , exportieren und an den neuen Speicherort importieren. Sie müssen die Tabellen bearbeiten, in denen Daten zu dem zu migrierenden Blog gespeichert sind. Stellen Sie sicher, dass das Präfix dieser Tabellen am neuen Speicherort identisch ist.

Beispielsweise enthält die Tabelle wp_blogs für Ihr Blog die Blog-ID, die Site-ID, die Domäne und den Pfad, mit denen WordPress Multisite Ihr Blog erkennen und damit arbeiten kann. Bearbeiten Sie alle nicht mehr korrekten Elemente, um den neuen Speicherort wiederzugeben. Lesen Sie jedoch den Rest dieses Beitrags, bevor Sie dies versuchen.

Siehe Übersicht über Tabellen mit mehreren Standorten

Um Ihre WordPress- und Plugin-Einstellungen für das zu übertragende Blog zu migrieren , müssen Sie alle Plugins lokal deaktivieren und dann Ihre ortsspezifischen Tabellen (Codex-Referenz) exportieren , einschließlich der für Ihre Plugins. Importieren Sie diese Tabellen in die Datenbank des neuen Speicherorts.

Stellen Sie sicher, dass der neue Speicherort dasselbe Datenbankpräfix verwendet wie die Tabellen, die Sie importieren. Das Präfix enthält die Site-ID für Ihr Blog und sieht ungefähr so ​​aus wp_2_options, wp_2_posts, wp_2_postmeta.
Siehe Erkunden von WordPress Multisite von Lisa Sabin-Wilson

Ich gehe davon aus, dass Sie wissen, wie man über phpmyAdmin oder mit dem Befehl mysqldump in Ihrem Terminal importiert / exportiert. Das geht etwas über den Rahmen dieses Beitrags hinaus, aber hier ist ein Exportbeispiel, das helfen sollte.

Von Wie können Sie bestimmte Tabellen mysqldump? (Die Syntax wurde zur besseren Übersicht leicht bearbeitet.):

Wenn Sie die Tabellen t1, t2 und t3 aus der Datenbank mydb sichern

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

Bevor Sie Plugins auf der neuen Site aktivieren, gehen Sie zu Ihren Permalink-Einstellungen in admin cp und speichern Sie die Einstellungen, um die Datenbankdateien auf die neue Site-URL zu aktualisieren. Aktivieren Sie Ihre Plugins und prüfen Sie, ob Probleme vorliegen.

Ein Problem, auf das Sie möglicherweise stoßen, ist die Serialisierung von Daten in Ihren Tabellen.

"[...] Verweise auf den alten Domainnamen oder Speicherort verbleiben in der Datenbank. Dies kann zu Problemen mit Links oder der Anzeige von Themen führen.

Wenn Sie in Ihrer gesamten Datenbank suchen und ersetzen, um die URLs zu ändern, können Sie Probleme mit der Datenserialisierung verursachen, da in einigen Themen und Widgets Werte mit der Länge Ihrer URL gespeichert sind. " Wenn Ihr Domain-Name oder Ihre URLs Veränderung

Beachten Sie, dass die Serialisierung von Daten auch zu Konflikten in Datenbanktabellen führen kann, die sich auf Ihre Plugins beziehen. Verwenden Sie das im vorherigen Codex-Link empfohlene Skript zum Suchen und Ersetzen von Datenbanken, anstatt die in der Datenbank gespeicherte URL manuell zu suchen und zu ersetzen . Wenn die Datenbank nur wenige Instanzen der Serialisierung enthält, können Sie sie einfach manuell über phpMyAdmin oder wie auch immer Sie es für die Verwaltung Ihrer Datenbank bevorzugen, bearbeiten.

Ein weiteres Problem, das möglicherweise auftritt, besteht darin, dass falsche Dateipfade, die in Datenbanktabellen gespeichert sind, aktualisiert werden müssen, um den neuen Speicherort wiederzugeben. Dies kann bei Medienverzeichnissen oder Verzeichnissen der Fall sein, die von Plugins verwendet werden, je nachdem, wie das Plugin entworfen wurde. Auch hier sollten Sie das Such- und Ersetzungsskript verwenden, um sicherzustellen, dass beim Aktualisieren der Dateipfade keine Serialisierungskonflikte auftreten. Alternativ können Sie Ihre Tabellen durchsuchen und manuell aktualisieren.

Iyrin
quelle
Vielen Dank! Es scheint also keinen wirklichen Vorteil zu haben, auf diese Weise zu arbeiten: Es ist eine Tüte voller Verletzungen. Es wäre besser, einen lokalen Standort zu entwickeln und in die Umgebung mit mehreren Standorten zu migrieren.
Molokom
Möglicherweise treten viele der gleichen Probleme auf, es sollten jedoch weniger Tabellen erforderlich sein, die Sie für die Migration benötigen. Um Ihnen eine Idee zu geben, hier ist eine anständige Anleitung für das Verschieben eines vorhandenen Blogs in WordPress Multi-Site . Ich überlasse es Ihnen zu bestimmen, welche für Sie als Entwickler effizienter ist.
Iyrin
0

Könnten Sie nicht die integrierten Export- und Importfunktionen von WordPress verwenden? Dann geht es nur noch darum, das Thema per FTP von einer Installation zur nächsten zu verschieben. Es geht ziemlich schnell und Sie können eine Site zwischen Installationen in weniger als 5 Minuten migrieren.

Sie können Benutzeranmeldeinformationen mit einem raffinierten Plugin namens User Syncronization synchronisieren .

Ich habe es nicht verwendet, aber ManageWP verfügt über ein benutzerfreundliches Bereitstellungs- und Klontool, mit dem Sie von einer vorhandenen Site zu einer neuen wechseln können. Es lohnt sich, einen Blick darauf zu werfen .

NW Tech
quelle