Der folgende Beitrag ist ein Gastbeitrag von Erez Elias. Erez besuchte kürzlich ein WordCamp und schrieb mir, inspiriert, etwas über WordPress zu schreiben. Wir waren uns einig, dass dies ein interessantes Thema ist, und eines, das ich selbst schon immer dokumentieren wollte, da ich es etwa hundertmal in meinem Leben getan habe und immer ein kleines Detail nachschlagen muss.
Eine große Quelle der Frustration, die ich bei WordPress-Benutzern beobachtet habe, tritt auf, wenn sie ihre WordPress-Website verschieben möchten. Das heißt, die gesamte Website von einem Hosting-Unternehmen zu einem anderen zu verschieben. In diesem Artikel führe ich Sie durch 4 einfache Schritte zum Verschieben einer WordPress-Website zu einem neuen Hosting.
Dieser Artikel setzt voraus, dass Sie Zugriff auf den alten und den neuen Server haben. Sie können sich über FTP oder SSH in beide einloggen.
Schritt 1) Datenbank sichern
WordPress speichert Daten in einer MySQL-Datenbank. Sie müssen diese Datenbank verschieben, um die Website zu verschieben, was wohl der kniffligste Teil ist. Sie müssen zuerst die Datenbank von der alten Website sichern.
Methode 1) Plugin verwenden
Es gibt eine Methode, die Datenbank mit einem Plugin zu sichern. Beachten Sie, dass Sie, wenn Sie mit einer großen Datenbank (z. B. über 50 MB) zu tun haben, besser Methode 2 verwenden.
WordPress verfügt über zahlreiche Plugins zur Sicherung der Datenbank. Mein Favorit ist ein Plugin namens wp-db-backup. Sobald das Plugin installiert und aktiviert ist, wählen Sie unter Extras > Sicherung im Adminbereich aus.

Das Plugin sucht nach anderen Tabellen in derselben Datenbank. Diese Tabellen, die keine „Core“-WordPress-Tabellen sind, stammen möglicherweise von anderen Plugins, die Sie verwendet haben und die Daten darin gespeichert haben.

Wählen Sie aus, ob Sie die Sicherungsdatei per E-Mail erhalten oder direkt herunterladen möchten, und klicken Sie auf die Schaltfläche Jetzt sichern!.

Methode 2) Kommandozeile verwenden
Wir können ein wenig näher an die Hardware heran, wenn wir mit SSH sichern. SSH (Secure Shell) ist ein Netzwerkprotokoll, mit dem Sie sicher über eine verschlüsselte Verbindung auf Ihren Server zugreifen können.
Zuerst müssen Sie sich mit dem Server verbinden. Sie benötigen die IP-Adresse, den Benutzernamen und das Passwort des Servers. Sie benötigen außerdem einen Befehlszeilenclient wie Terminal für Mac oder Putty für Windows.
$ ssh username@[server-ip]
Wenn Sie zum ersten Mal eine Verbindung herstellen, sehen Sie eine Aufforderung Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten? Geben Sie yes ein und drücken Sie die Eingabetaste. Dann werden Sie aufgefordert, Ihr SSH-Anmeldepasswort einzugeben. Danach sind Sie über SSH mit dem Server verbunden.
Jetzt können Sie die Datenbank mit dem folgenden Befehl exportieren.
$ mysqldump -u [username] -p [database_name] > [name_your_backup_file].sql
Sie müssen die Optionen in [Klammern] durch Ihre eigenen Informationen ersetzen. Der Benutzername ist hier nicht derselbe wie Ihre SSH-Anmeldung, sondern Ihr MySQL-Zugriffbenutzername. Den Datenbanknamen können Sie aus der Datei `wp_config.php` entnehmen, falls Sie ihn vergessen haben. Sie werden nach dieser Eingabe auch nach einem Passwort gefragt, das ist das Datenbankpasswort, das Sie ebenfalls aus der Datei `wp-config.php` entnehmen können.
Dadurch wird eine Datei erstellt (die Sie im letzten Teil dieses Befehls benannt haben), die eine vollständige Sicherung Ihrer Datenbank darstellt. Sie möchten vielleicht in ein geeignetes Verzeichnis navigieren, um diesen Befehl auszuführen, damit die Datei dort erstellt wird. Oder Sie geben den Dateipfad selbst in den Befehl ein.
Sie müssen eine lokale Kopie dieser `database.sql`-Sicherungsdatei erhalten. Eine Möglichkeit dazu ist, sich per FTP mit dem Server zu verbinden, dorthin zu navigieren, wo Sie sie abgelegt haben, und sie von dort herunterzuladen. Oder, da Sie sowieso in der Befehlszeile sind, beenden Sie die SSH-Verbindung und verwenden Sie den Befehl scp, um sie herunterzuladen. So etwas wie
$ scp [username]@[server-ip]:[backup_file].sql .
Schritt 2) Dateien sichern
Jetzt ist es an der Zeit, die tatsächlichen Dateien vom alten Server zu sichern. Dazu gehören Ihre Theme-Dateien, Plugins, Uploads... alles. Sogar Ihre WordPress-Core-Dateien, obwohl dies ein guter Zeitpunkt ist, eine frische Kopie davon für den neuen Server herunterzuladen.
Um alle Ihre Dateien vom alten Server herunterzuladen, verwenden Sie einen FTP-Client wie Filezilla, um sich bei Ihrem Server anzumelden. Laden Sie entweder alles vom Web-Root-Verzeichnis herunter oder nur den Ordner `wp-content`, wenn Sie zuerst eine frische Kopie von WordPress auf dem neuen Server hochladen.

Das kann eine Weile dauern! Es sind wahrscheinlich ziemlich viele Dateien und Bilder.
Schritt 3) Dateien auf den neuen Server verschieben
Jetzt können Sie sich auch über FTP in den neuen Server einloggen und die Dateien in den Web-Root-Ordner hochladen, den Sie gerade vom alten Server heruntergeladen haben. Dies kann ebenfalls eine Weile dauern (Uploads sind normalerweise etwas langsamer als Downloads).
Schritt 4) Datenbank auf den neuen Server importieren
In diesem Schritt importieren Sie die Datenbank auf den Server. Dieser Schritt hat ebenfalls zwei Methoden: über PHPMyAdmin oder über SSH.
Methode 1) Über das Control Panel
Die meisten Webhosting-Anbieter bieten eine Art Control Panel an, das Ihnen Zugriff auf Dinge wie Datenbanken ermöglicht. Es kann cPanel sein. Es kann Plesk sein. Es kann eine eigene Entwicklung sein.

Wahrscheinlich verwenden Sie das Control Panel, um die neue Datenbank auf Ihrem neuen Server zu erstellen. Es ist sehr wahrscheinlich, dass das Control Panel Ihnen Zugriff auf eine Software namens phpMyAdmin gibt, die speziell für die Verwaltung von MySQL im Web entwickelt wurde.

Öffnen Sie die neue Datenbank für die neue Website.
Und nun zum Moment der Wahrheit: dem Importieren der `.sql`-Sicherungsdatei von der alten Website!
Klicken Sie im oberen Navigationsmenü auf den Tab Import.

Nun können Sie die `.sql`-Datei auf Ihrem lokalen Computer auswählen und ausführen (drücken Sie die Schaltfläche Los).

Methode 2) Über SSH
Wenn die Datenbankdatei zu groß ist, wie beim Export, können Sie sich per SSH mit dem Server verbinden und den Import dort durchführen. Laden Sie zuerst den Datenbankexport auf den neuen Server hoch, verbinden Sie sich dann per SSH mit dem Server (Anweisungen dazu in einem früheren Abschnitt) und führen Sie dann den folgenden Befehl aus, um den Import durchzuführen.
$ mysql -p -u [username] [database_name] < [database_name].sql
Auch hier ist der Benutzername der MySQL-Benutzer, nicht der SSH-Benutzer.
Möglicherweise müssen Sie auch einige Optionen ändern
Wenn Sie die URL Ihrer Website gleichzeitig mit dem Serverwechsel ändern, müssen Sie möglicherweise zusätzliche MySQL-Arbeiten durchführen. Wenn Sie beispielsweise von domain-one.com zu domain-two.com wechseln, müssen Sie die Optionen siteurl und home in der Tabelle wp_options ändern.

Dadurch werden jedoch keine fest codierten Verweise auf domain-one.com im Post-Inhalt geändert (z. B. Bildquellen). Wenn Sie auch das ändern müssen, gibt es einige SQL-Befehle, auf die Sie in dem Beitrag zum Thema WordPress auf HTTPS umstellen verweisen können, die hilfreich sein könnten.
Ich hoffe, dieser Artikel hat Ihnen beim Umzug Ihrer WordPress-Website an einen neuen Standort geholfen!
Für den letzten Schritt ist dies nützlich https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
Ich muss meine DB immer in kleinen Chunks (1 MB oder so, erinnere mich nicht mehr genau) exportieren, weil es in phpMyAdmin ein Upload-Limit für Dateigrößen gibt. Kein großes Problem, aber ist das nur bei meinem Webhost so oder ist das ein phpMyAdmin-Limit?
Sie können Ihre MySQL-Datei als ZIP-Archiv zu PhpMyAdmin hochladen, das ist normalerweise viel kleiner als die vollständige Datenbank. Das löst das Problem meistens. Außerdem ist PhpMyAdmin standardmäßig auf ein Upload-Limit von 2 MB eingestellt. Wenn Sie auf Ihrem Server Zugriff auf die Datei `php.ini` haben, können Sie die Parameter ändern (auf einem Shared-Server wahrscheinlich nicht möglich).
upload_max_filesize = 20M
post_max_size = 20M
Wenn Sie dies tun könnten, müssten Sie auch Ihren Apache-Server danach neu starten!
Sequel Pro (es ist kostenlos trotz seines Namens) ist ein ziemlich gutes Werkzeug für die Interaktion mit MySQL aus GUI-Sicht, wenn Sie wirklich große Datenbanken haben und mit Dateigrößenlimits zu kämpfen haben.
Ich stimme Chris zu – bei solchen Dingen sollte man nah an der Hardware sein.
Leute, es gibt nur ein Tool, das Sie jemals für die Migration von WordPress-Websites benötigen werden
https://wordpress.org/plugins/duplicator/
Absolut zustimmend. All meine Erfahrung zeigt, dass Duplicator heutzutage die einfachste, schnellste und schmerzfreieste Wahl ist, um eine Website von einem Hosting zum anderen zu verschieben.
Absolut erstaunlich! Hat bei mir perfekt funktioniert! Danke!
Alles, was Sie brauchen, ist
https://wordpress.org/plugins/all-in-one-wp-migration/
Einige Gedanken
Sie können auch alle Dateien per SSH verschieben, von Server zu Server. Das ist viel schneller und effizienter, als alles auf Ihren Computer herunterzuladen, um es dann wieder auf den neuen Server zu übertragen.
Ich würde rsync verwenden, das ist „lesbarer“, aber Sie können auch scp verwenden. Rsync ist besser, wenn Sie mehrmals kopieren müssen/wollen, ohne alles erneut zu senden (nur das Geänderte erneut senden). Dasselbe gilt natürlich auch für die SQL-Dump-Datei.
„Sie können“ statt Toi Can. Verdammt, du Autokorrektur.
Vielleicht etwas vom Thema abweichend, aber ich bin sicher, es gibt eine Rubygem namens wordmove, die in Ihren Workflow für diese Art von Migration passen könnte.
Was ist mit serialisierten Daten? :P
Das Such- und Ersetzungsskript von Interconnect IT funktioniert gut für serialisierte Daten. https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
Man kann nie genug „Anleitungen zur Migration von WP-Websites“ haben, oder? Ich folge seit Jahren Bill Ericksons Methode, weil sie einfach funktioniert. Überall. Viel Spaß: http://www.billerickson.net/migrating-wordpress-websites/
Zur Vollständigkeit ein paar weitere Tipps für die Migration von allem außer einem winzigen Blog
Laden Sie nicht alle Ihre Dateien einzeln herunter und hoch über FileZilla oder ähnliches. Erstellen Sie stattdessen ein Archiv davon und laden Sie sie dann alle auf einmal herunter. Noch besser: Laden Sie sie direkt auf dem Remote-Server herunter und überspringen Sie den Zwischenschritt des Herunterladens auf und Hochladens von Ihrem eigenen Computer.
Erstellen Sie auf der Quellmaschine ein Tar- und Gzip-Archiv des Ordners `uploads` (
c=create,z=gzip,v=verbose,f=output file).Holen Sie auf der Zielmaschine vom Quellserver und entpacken Sie dann (
x=extract).Möglicherweise müssen Sie an dieser Stelle mit den Berechtigungen spielen, abhängig von Ihrer Serverkonfiguration, aber das ist ein separates Thema.
Behandeln Sie Quelldateien nicht manuell. Wie Sie oben sehen, haben wir nur den Ordner `uploads` archiviert. Alle Ihre anderen Ordner sollten auf andere Weise verwaltet werden (Versionskontrolle oder Composer oder eine Mischung usw.). Wenn Sie nichts davon haben, können Sie die gleichen Schritte wie oben befolgen, aber die gesamte Website archivieren (entweder `wp-content` oder dessen übergeordnetes Verzeichnis).
Verwenden Sie WP-CLI, um URL-Änderungen in der DB zu unterstützen. Nehmen Sie keine URL-Änderungen direkt über SQL vor. Installieren Sie einfach WP-CLI (es ist auf einigen WordPress-Hosts vorinstalliert!) und führen Sie dann aus
Weitere Details finden Sie unter http://wp-cli.org/commands/search-replace/.
Tatsächlich verwenden Sie einfach WP-CLI für alles, was mit der DB zu tun hat, einschließlich des Exports von der alten Website und des Imports auf die neue Website. Siehe http://wp-cli.org/commands/db/export/ und http://wp-cli.org/commands/db/import/. Das Gute an WP-CLI ist, dass es Ihre
wp-config.php-Datei liest, was bedeutet, dass Sie keine Anmeldedaten manuell angeben müssen, wie es bei der manuellen Ausführung vonmysqldumpder Fall wäre.Ich denke, das ist bei Shared-Hostings unvermeidlich, wo kein SSH-Zugriff oder kein Hosting-Panel-Tool zum Entpacken einer ZIP-Datei vorhanden ist.
Oder gibt es noch einen anderen Grund, warum das schlecht ist?
Kam hierher für diesen Rat. Sie müssen definitiv mehr ändern als nur die Website-/Home-URLs, und viele Leute werden versuchen, sie über den Adminbereich zu bearbeiten und werden zur alten Website weitergeleitet. WP-CLI ist das Beste, aber die anderen Serialisierungstools sind ebenfalls solide. Das Ersetzen von URLs in der DB ist ein obligatorischer Schritt, wo ich herkomme.
Auch ein toller Tipp zum Komprimieren vor dem Verschieben. Ich würde auch sagen, wenn Sie bereits SSH verwenden, überspringen Sie den lokalen Download und ziehen Sie das Archiv direkt von einem Server zum anderen.
Das Definieren der neuen URL in der `wp-config.php` ist nützlich für eine Domainänderung, ohne die DB durchsuchen zu müssen.
Das wollte ich auch gerade posten. Das ist die schnellste Option, um die Website zu verschieben. Sobald Sie sie zum Laufen gebracht haben, können Sie die Suche/Ersetzung in der DB in aller Ruhe durchführen, ohne Eile.
WP Sync DB (ein WP Migrate pro Fork) + WP-Cli Plugin FTW! ;)
Sie können vorbereitete „Szenarien“ erstellen und dann ganze Datenbanken live von Ihrem Terminal oder der WP-GUI pushen/pullen.
Schnell und narrensicher, sehr einfach in jeder Umgebung einzurichten.
Was die Dateimigration angeht, ist Transmit und SFTP Sync meine Wahl für den Moment (wenn kein vollwertiges SSH auf dem entfernten Server verfügbar ist, wie bei LAMP-Hosting für Einsteiger).
Aber ich bin damit nicht ganz zufrieden... manchmal entstehen Berechtigungsinkonsistenzen zwischen Entwicklungs-/Produktionsumgebungen. Ich habe SFTP von der CLI aufgegeben, da es sich als weniger zuverlässig als Transmit erwiesen hat.
Ich tendiere immer noch zu einer bidirektionalen Migration mit WP über einen einzigen Befehl, nicht allzu weit davon entfernt.
Auch ich habe festgestellt, dass wp-cli für Backups hilfreich ist, wenn Sie sich etwas mit der Kommandozeile auskennen und wp-cli auf Ihrem Webhost installiert ist (was normalerweise der Fall ist!).
wp db export <backupfilename.sql>Sie können es auch für Importe verwenden.