Wie kopieren/übertragen von WordPress-Seiten von einem Ort zum anderen
Ich bin neu in WordPress und gründlich beeindruckt mit der Plattform... das ist, bis es Zeit kam zu veröffentlichen meinem lokalen MAMP wordpress-Website, um meine Produktion server - Es gibt einfach keine klare und einfache Möglichkeit zur übertragung einer Website von einem server auf einen anderen.
Ziel:
Transfer eine komplette wordpress-Website von einem Ort zum anderen, und gleichzeitig alle Medien, Einstellungen und Inhalte.
Bestehende Methode Einschränkungen:
- Eingebaute export - /import-Funktionalität
- Nicht übertragen werden Themen oder Einstellungen
- Fügt den aktuellen Inhalt, ersetzt aber nicht die aktuellen Artikel oder löschen Sie die alten.
- Dabei ein sql-dump exportieren und importieren
- Pfade sind absolut und werden nicht aktualisiert, also links, etc. sind alle kaputt in die neue Website.
HINWEIS:
Codex bietet diese multi-Schritt-Lösung, aber ich bin auf der Suche nach etwas einfacher. Es ist nicht praktisch für wiederholte transfers, wie in einem publishing-Szenario.
Die paar Male, die ich habe zu tun, ich gedumpten die Datenbank und habe dann einige suchen/ersetzen, zu reparieren, die Wege, die wordpress-Würfe so ziemlich ÜBERALL. Achten Sie jedoch darauf, laden, dump in eine andere Datenbank, die bereits Gastgeber für wordpress. Sie werden mit ziemlicher Sicherheit erhalten-ID-Konflikt auf alle Arten von Tabellen und stomp auf beide blogs.
B - Danke für die Warnung.
B - Danke für die Warnung.
InformationsquelleAutor Yarin | 2011-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht zu vermeiden, es zu tun auf diese Weise (soweit ich weiß)
Aktualisieren Sie die Optionen für die Website-Einstellungen:
Update der post Inhalt und die post-slugs/urls gleichzeitig:
Ist und Sie getan werden sollte..
Natürlich könnte es einige andere Probleme auf dem Weg, aber ich habe es getan, auf diese Weise ein paar mal.
@Yarin wies darauf hin, dass es eine viel einfacheren Weg, die Website zu aktualisieren urls: Nur harcode der url-Einstellungen in /wp-config.php.
/Wp-config.php fügen Sie diese:
Dieser " set-and-forget wird automatisch aktualisiert, alle url-Pfade in der Datenbank-egal, welche Daten Sie importieren. Es ist besonders nützlich, wenn Sie ständig das importieren von Daten von einer anderen Website, wie in einem dev-to-production-publishing-Szenario.
Genial.. es ist ein guter Ausgangspunkt um die config-Datei-Optionen, ich wusste nicht, diese überschreiben die in der DB. Vielleicht steckte das in meiner Antwort?
Ich legte ein Teil Ihrer Antwort in mir, ich hoffe es ist in Ordnung 🙂
Alles gute - hoffentlich spart die Leute einige Zeit
Seien Sie vorsichtig mit dieser Methode, die manchmal auch plugins einbetten der url in eine serialisierte Objekte, so dass, wenn Sie Ihre neue domain-Namen nicht die genaue Länge des alten domain-Namen, die Eigenschaften werden nicht unserialize und Sie verlieren einen Haufen von Daten. Plugins sollten dies nicht tun, und die meisten der populären gestoppt haben, aber nichts hält ein plugin ab, es zu tun, und php gehören string-Längen in den serialisierten Daten.
InformationsquelleAutor arnorhs
Einen viel einfacheren Methode, die ich gefunden habe, ist zu öffnen Sie den MySQL-dump in so etwas wie notepad++
Dann tun Sie eine Suche durch und ersetzen Sie e.g http://www.oldsite.com zu http://www.newsite.com
dann importieren Sie die dump mit PHP-MyAdmin
Änderung
Eines der großen Probleme mit dem Umzug einer wordpress-Website von einer Domäne in die andere ist vor allem auf jegliche plugins oder themes, das speichern von Einstellungen in der Datenbank.
Den üblichen such-und ersetzen-Methoden nicht funktionieren, weil einige themes oder plugins speichern die Daten in einem serialisierten format.
sagen in deinem theme-plugin Sie haben eine Einstellung namens site home:
site home: http://oldsite.com'
Serialisierte es wäre in der Datenbank gespeichert wie dies:
beachten Sie die
s:**
das serialisierte array speichert die Zeichenfolge und wie viele Zeichen in der Zeichenfolgealso, wenn Ihr eine standard-suchen und ersetzen wie zuvor beschrieben
gibt es jetzt 20 Zeichen nicht 18
Jedoch ein standard-suchen und ersetzen wie oben beschrieben würde das update nur die übereinstimmende Zeichenfolge, die Anzahl der Zeichen wird nicht aktualisiert.
die serialisierte Daten würden geändert werden, um
{s:9:"url";s:18:"http://mynewsite.com";}
Dies ist, was bricht wordpress, da die Daten in das serialisierte array ist nun beschädigt, da die Anzahl der Zeichen ist nicht mehr korrekt.
Ist das beste tool meiner Meinung nach für die Migration von wordpress-Seiten ist, die von einigen Jungs von interconnect/it.
Prüft serialisierte arrays und aktualisiert die Anzahl der Zeichen als auch als standard-Saiten.
Wenn Sie die Migration einer wordpress-Website, ist dies das einzige Werkzeug, das Sie verwenden sollten. und Ihre freie
suchen und ersetzen für Word-Press-Datenbank
Es funktioniert für die meisten Teile, gibt es ein problem, wenn die Einstellungen gespeichert sind in ein array, wie es wird gespeichert mit der string-Länge, wenn die Länge des Strings ändert die Einstellungen beschädigt werden.
InformationsquelleAutor Dizzy Bryan High
Wahrscheinlich die sauberste Lösung, die ich bisher gefunden habe: http://wordpress.org/extend/plugins/duplicator/
InformationsquelleAutor ylluminate
arnorhs richtig ist. Es gibt ein paar Dinge, die ich ' ve stoßen:
Einige hosts (wie MediaTemple DV) wird nicht zulassen, dass die öffentlichen Benutzer, Dateien zu schreiben, so wenn das der Fall ist (stellen Sie sicher, es ist ein problem der ersten), werden Sie wollen, um zu gehen /wp-content/uploads/und stellen Sie sicher, dass ist chmod 777 (oder zumindest 767). Alle sub-Verzeichnisse müssen die gleichen sein, wie gut.
Manchmal habe ich Probleme beim importieren von großen Dateien in mysql. Eine Verknüpfung ist zu öffnen die exportierte sql-Datei in einem text-editor und kopieren Sie ein paar tausend Zeilen in die Zwischenablage und fügen Sie Sie in phpMyAdmin als SQL-Aufruf. Funktioniert wie ein Charme. So stellen Sie sicher, beenden Sie Ihre Kopie an das Ende einer SQL-Anweisung.
InformationsquelleAutor David
Diese Antwort baut auf der arnorhs ist oben, was richtig ist - ich möchte nur darauf hinweisen, ein viel einfacheren Weg, die Website zu aktualisieren urls: Nur harcode der url-Einstellungen in /wp-config.php.
/Wp-config.php fügen Sie diese:
Dieser " set-and-forget wird automatisch aktualisiert, alle url-Pfade in der Datenbank-egal, welche Daten Sie importieren. Es ist besonders nützlich, wenn Sie ständig das importieren von Daten von einer anderen Website, wie in einem dev-to-production-publishing-Szenario.
(HINWEIS: Wenn Sie jemals einen server-Fehler mit dieser, müssen Sie möglicherweise zu wechseln permalinks auf/ab in das admin-panel zu bekommen url-Pfad-änderungen zu registrieren)
Mehr dazu finden Sie unter: WordPress codex: Ändern Sie die Website-URL
Einige andere Notizen...
Wenn Sie versuchen, zu verschieben/ersetzen-Websites Inhalt auf eine andere, bestehende Seite würden Sie:
Dank der aktualisierten meine Antwort--
Ich hasse es, downvote, aber diese Antwort ist nicht eine effektive Lösung. Mit dieser option, links für Bilder & Seiten eingebettet in Beiträge über den TinyMCE-editor pflegen Sie die Domäne, der der Benutzer auf die Website zugreifen. Und Import/Export wirken sich nicht auf diese links. Also bei der Bereitstellung von Inhalt geschoben Produktion, links in die Produktion Seite einen link zurück zur Inszenierung.
InformationsquelleAutor Yarin
Yep, einer der scheußlichen undokumentierten bugs von WordPress 🙁
Schrieb ich ein plugin, das löst das ganze problem, richtig - http://wordpress.org/extend/plugins/root-relative-urls/
Grundsätzlich verändern wird alle links in Ihre WordPress-Installation root-relative (ie beginnen mit einem "/", die sind effektiv equivolent zu absoluten urls.) Und es wird Streifen die domain, von der aus links zu Bildern und anderen assets Hinzugefügt werden, um den TinyMCE-editor so, wenn Sie neue Inhalte erstellen und es auf intelligente Weise ändern, werden die links auch.
Mit diesem plugin können Sie dann Zugriff auf Ihre Entwicklung-Standort via IP-Adresse, Lokaler Host, oder jeden alias, den Sie möchten, um es zu geben. Und wenn du einen Datenbank-dump der Daten oder wenn Sie nur die import - /export-Dienstprogramm können Sie Ihre Inhalte einfach so funktionieren, wie Sie erwarten würden, in der Produktion.
Es doens T Arbeit, wenn Sie Ihre Entwicklungsumgebung hat eine andere root-level-Struktur aus der Produktionsumgebung, aber Sie verwenden können .htaccess rewrite-Regeln zu behandeln, die edge-Fall - noch ohne gefährlichen such-und ersetzen-string-Operationen, die auf den exportierten sql-Daten.
Es ist auch nicht die Arbeit mit multisite subdomain installiert, aber das ist ein noch größeres Chaos.
InformationsquelleAutor Marcus Pope