Wordpress nach Nikola umziehen

2013-03-14 23:06

Ihr wollt von Wordpress zu Nikola wechseln? Super, denn das ist ziemlich einfach! Hier werde ich euch zeigen, wie ihr einen Umzug von eurem bestehenden Wordpress-Blog hin zu Nikola macht.

Zuerst brauchen wir einen Export der Wordpress-Daten. Der kann im Admin-Bereich unter dem Punkt Werkzeuge -> Daten exportieren erstellt werden. Zum Umzug aller Daten wählen wir Alle Inhalte und drücken auf den Knopf zum Download.

Ich nutze für die weiteren Schritte der Anleitung Debian unstable. Für maximalen Comfort installieren wir die folgenden Pakete, falls sie nicht schon längst installiert wurden:

sudo apt-get install python-dev python-notify python-pip python-virtualenv virtualenvwrapper python-distribute libxml2-dev libxslt1-dev build-essential libjpeg8-dev

Für die Nikola-Installation richten wir uns nun ein virtualenv durch den grandiosen virtualenvwrapper ein. Damit haben wir eine Umgebung, in der wir auch als non-root Benutzer Python-Pakete installieren können. Falls beim ersten Versuch den folgenden Befehl auszuführen eine Meldung kommt, dass mkvirtualenv nicht gefunden werden konnte, müsste ihr eine neue Terminal-Session öffnen.

mkvirtualenv nikola

Solange (nikola) eurem Prompt vorangestellt ist, sind wir in der virtuellen Umgebung. Hier können wir nun Nikola installieren. Nikola ist nur das Grundgerüst. Wir werden für den Import noch Requests und Markdown installieren. Für die Komprimierung von CSS & JavaScript installieren wir noch Webassets.

pip install --use-mirrors Nikola requests markdown webassets

Bevor wir nun den Import durchführen, können wir uns mit folgendem Befehl die Optionen dafür anzeigen lassen:

nikola help import_wordpress

Ich will keine Entwürfe importieren und die Dateien sollen am Ende im Ordner blog landen.

nikola import_wordpress -o blog --no-drafts path/to/wordpress_export.xml

Nikola wird nun die Artikel und/oder Seiten aus der Export-Datei in ein Markdown-Format umwandeln und eventuell vorhandene Anhänge, das können z.B. im Post enthaltene Bilder sein, herunterladen. Anschließend finden wir im Ordner blog unsere Konfigurationsdatei conf.py. In der werden die Einstellungen für den Blog gemacht und man sollte sich kurz Zeit nehmen, um dort reinzuschauen und gegebenenfalls Änderungen zu machen.

Befinden wir uns im Ordner blog, können wir mittels nikola build dafür sorgen, dass unsere Seite erstellt wird. Das Ergebnis ist danach im Ordner output zu finden. Haben wir unsere Seite erstellt, können wir sie uns mit nikola serve in unserem Webbrowser anschauen - dabei ist dann noch alles lokal.

Nun ist der Zeitpunkt, um ein letztes Backup des Wordpress-Ordners zu machen, bevor man ihn verschiebt oder löscht. Wer ihn verschiebt, der sollte vorher im Admin-Backend die Adresse des Blogs anpassen, damit bei einem Aufruf an der neuen Adresse noch alles funktioniert und man nicht in der Datenbank rumwühlen muss ;)

Wollen wir die fertige Seite nun auf unseren Webserver schieben, können wir das entweder über ein FTP-Programm oder - eleganter - durch die Angabe von Deploy-Befehlen in conf.py. Bei angegebenem Deploy-Befehl kann mittels nikola deploy die Übertragung auf den Webserver vorgenommen werden.

Da ich nicht nur das Blog-System sondern auch die Domain gewechselt habe, habe ich zusätzlich im alten Verzeichnis meines Blogs eine Weiterleitung eingerichtet, welche Besucher und Feedreader automatisch auf die neue Adresse verweist. Dabei sieht meine .htaccess wie folgt aus:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule feed/ http://blog.nerdno.de/rss.xml [R=301,L]
RewriteRule ^(.*)$ http://blog.nerdno.de/$1 [R=301,L]
RewriteRule . /index.php [L]
</IfModule>

Redirect 301 / http://blog.nerdno.de
Redirect 301 /feed/ http://blog.nerdno.de/rss.xml

Die immer wieder auftauchende 301 ist der HTTP Status Code für moved permanently.

Das wars auch schon, an diesem Punkt sollte euer Nikola up and running sein :)