WordPress auf Mac OSX (Snow Leopard)

Was machen Nerds an einem langweiligen Samstag Nachmittag? Das gleiche, was sie immer tun – am Rechner rumfriemeln. Ich wollte mir auf meinem MacBook ein WordPress installieren und ein Backup dieses Blogs einspielen – zum Rumprobieren und Knöpfchen drücken, ohne dass online gleich die Ranch brennt. Dazu muss das lokale WordPress natürlich genauso konfiguriert sein wie das live WordPress – Permalinks, Seitenstruktur, Plugins, etc. Das war gar nicht so einfach wie gedacht …

Vorbereitungen

Mac OSX kommt mit vorinstalliertem Apache2 Webserver, weswegen es nicht notwendig ist, sich irgendwelche Pakete wie MAMP o.ä. zu installieren (auch wenn man hierzu im Web abstruse Anleitungen findet, die dann auch gleich vorschlagen, die WordPress-Datenbanktabellen in der mysql-Datenbank ((damit meine ich die Datenbank namens mysql, in der z.B. gespeichert wird, welche Nutzer von welchem Host aus überhaupt auf den Datenbank-Server zugreifen dürfen)) anzulegen *grusel*).

Was man aber noch braucht ist eine MySQL-Datenbank. Für Mac OSX gibt es fertige Pakete, die man sich unter http://dev.mysql.com/downloads/mysql/ herunterladen und installieren kann. Wenn man sich das Startup-Item mit installiert, kann man den DB-Server einfach über Systemeinstellungen → MySQL starten und stoppen.

Im Apache muss noch das PHP-Modul aktiviert werden, damit die WordPress-Skripte ausgeführt werden können. Dazu muss man die Datei http.conf im Verzeichnis /private/etc/apache2/ editieren: Nach der Zeile

#LoadModule php5_module        libexec/apache2/libphp5.so

suchen, die Raute am Zeilenanfang entfernen und die Datei abspeichern (auch hier ist wieder das root-Passwort notwendig). Dann über Systemeinstellungen → Freigaben  den Haken bei „Webfreigabe“ löschen und wieder setzen – damit wird der Apache neu gestartet – diesmal mit geladenem PHP5-Modul ((per Hand geht das im Terminal mit sudo /usr/sbin/apachectl restart)) . Eine ausführliche Anleitung mit Bildern zu diesen Schritten gibt es bei sysadminslife.com.

Als letzten Vorbereitungsschritt müssen wir natürlich noch ein WordPress herunterladen und installieren. Ich habe mich dafür entschieden, WordPress  in meinem User-Home zu installieren, die WordPress-Files landen also in /Users/kati/Sites/ (im Finder wird das Verzeichnis als Websites angezeigt). Während das Herunterladen und entpacken noch recht einfach von statten ging, gab es bei der Installation den ersten Stolperstein – WordPress wollte sich partout nicht mit meinem MySQL-Datenbank-Server verbinden. Nach einigen Versuchen habe ich dann herausgefunden, dass der DB-Server sich unter Mac OSX nicht wie gewohnt unter localhost ansprechen lässt. Trägt man in das Feld für den Datenbank-Host stattdessen die IP 127.0.0.1 ein, kann man auch die Konfiguration für WordPress abspeichern und die WP-Skripte installieren. Damit ist die WordPress-Installation abgeschlossen.

Daten einspielen

Als nächstes brauchen wir noch das Theme, installierte Plugins sowie die Uploads. Dazu mit einem FTP-Programm auf dem Server, auf dem das Live-Blog liegt einloggen und die Inhalte aus wp-content in das entsprechende Verzeichnis der lokalen WordPress-Installation kopieren.

Da wir ja ein Backup von unserem Live-Blog einspielen wollen, brauchen wir noch ein paar Daten. WordPress bietet zwar von Hause aus ein Export-Tool, das exportiert aber nicht alle Daten – Einstellungen und Plugin-Konfigurationen bleiben auf der Strecke. Deswegen ziehen wir direkt einen Dump aus der Datenbank.

Viele Hoster bieten grafische Tools wie phpMyAdmin, mit denen man sehr einfach seine Datenbanken exportieren und importieren kann. Also – im Live-System die Datenbank exportieren (Struktur + Daten) und im lokalen System wieder importieren. Achtet hier auf die Zeichen-Encodings der Tabellen, die müssen bei beiden Datenbanken gleich sein, sonst gibt es Buchstabensalat. Beim Import müsst ihr die „alte“, gerade eben angelegte Datenbank für WordPress zunächst löschen (droppen), weil wir ja einen Export einspielen wollen.

Bei mir gab es noch einen Stolperstein beim Einspielen des Datenbank-Dumps: Er war zu groß (etwas über 20MB)! PHP ist wohl per default so konfiguriert, dass man keine größeren Dateien als 1MB hochladen kann. Aber auch dem kann man abhelfen. Unter /private/etc/ gibt es eine Datei namens php.ini.default. Diese kopiert man nach php.ini und öffnet sie. Man sucht die Zeile

upload_max_filesize = 1M

und ändert den Wert entsprechend auf 30MB o.ä. Dann den Webserver nochmal neu starten (Systemeinstellungen → Freigaben → Webfreigabe – Haken entfernen und wieder setzen) und dann sollte auch ein größerer Dump importierbar sein.

Nun müssen wir noch die WordPress-Optionen in der Datenbank etwas anpassen, denn dort stehen noch falsche URLs drin. In der Tabelle wp_options sind folgende Optionen zu ändern: siteurl, home und ossdl_off_cdn_url – hier muss der Wert auf die URL eurer lokalen Installation gesetzt werden (also http://localhost/…)

Wenn alles geklappt hat, könnt ihr euch jetzt im lokalen WordPress mit den Zugangsdaten vom Live-System einloggen (die steckten ja auch im Dump!) und fröhlich frickeln.

Permalinks

Leider wollten meine Links im Blog nicht so, wie sie sollten. Ich hatte meine Links zu Postings auf eine andere Permalink-Struktur eingestellt (à la http://mm.smile-to-me.de/2011/01/23/sample-post/), für die ein URL-Rewriting auf die „echte“ Posting-Adresse notwendig ist. Dieser Mechnismus wird im Apache durch das Modul mod_rewrite und entsprechende Einträge in der .htaccess-Datei realisiert. Wenn ich nun im lokalen Blog auf eins meiner Postings klickte, bekam ich nur eine „URL not found“-Meldung. Nach einiger Frickelei bin ich dann auf die Lösung gestoßen. In der Datei /private/etc/apache2/users/<username>.conf sind folgende Änderungen vorzunehmen, damit das URL-Rewriting funktioniert:

<Directory "/Users/kati/Sites/">
 Options Indexes MultiViews
 AllowOverride None All
 Order allow,deny
 Allow from all
</Directory>

Plugins

Dann  gab es bei mir noch ein paar Probleme mit Plugins. Als ich die WordPress-Seite öffnen wollte, wurde mir nur eine leere Seite präsentiert – kein Blog, keine Fehlermeldung, nix. Aber ein Blick in das error_log vom Apache unter /private/etc/apache2/error_log verriet mir, dass es zwei Plugins waren, in deren Code angeblich Syntaxfehler steckten ((hier war wohl bei der FTP-Übertragung etwas nicht richtig gelaufen)) und WordPress davon abhielten, ordnungsgemäß zu laden. Ich habe die Verzeichnisse zu den Plugins im Plugin-Ordner gelöscht und danach ging alles. Yay!
Happy wordpressing!

10 Kommentare

  1. Au ja, WordPress im XAMPP macht viel Spaß. Hab so auch angefangen eingie Plugins zu testen. Dank Copy paste kann man es zerscießen wir man will – neukopieren und fertig. haste denn ein paar feine Plugins parat?

  2. Naja, irgendwie war die Datenbank ganz schön zickig und die tausend existierenden Encodings und deren Varianten können einen schon in den Wahnsinn treiben.
    Plugins, die bei mir laufen:

    • antispam-bee
    • feedstats
    • google-sitemap-generator
    • opml-importer
    • wp-db-backup
    • comment-reply-notification
    • semmelstatz
    • wp-downloadcounter
    • subscribe-to-comments-reloaded
    • wp-footnotes
    • feedburner_feedsmith_plugin_2.3
    • link-indication
    • tweetbacks
    • wp-super-cache
    • fixed-social-buttons
    • twitter-widget-pro
    • wp-to-twitter
    • flattr
    • login-lockdown
    • wordpress-importer
    • yet-another-related-posts-plugin
  3. Also ich bin deiner Anleitung gefolgt und habe es geschafft, WP lokal zu installieren. Was allerdings (unter 10.6.8?) nicht klappt, ist, dass eine .htaccess erstellt wird (hab ich dann manuell gemacht) und Themes und Plugins lassen sich nicht laden, da ich offenbar nicht berechtigt bin, in die Ordner zu schreiben.

    Installiert ist WP unter /users/Ralph/Sites – kein Ordner ‚wordpress‘ – und ich nehme an, dass es an mangelnden Schreibzugriff liegt 🙁

  4. Ralph: Welche Zugriffsrechte sind denn für das Verzeichnis /users/Ralph/Sites gesetzt? Um das herauszufinden, klick das Verzeichnis im Finder an und drück Apfel+i. Im erscheinenden Fenster kannst du unten unter „Freigaben und Zugriffsrechte“ die Berechtigungen für dieses Verzeichnis setzen. Damit du die .htaccess anlegen kannst etc. sollte bei „everyone“ auch „Lesen & Schreiben“ gesetzt sein.

  5. Sorry, aber könntest du den Punkt „WordPress installieren“ etwas genauer erläutern?
    Habe nämlich schon ganze Nachmittage damit verbracht, das hinzubekommen und
    alle auffindbaren Beschreibungen im Netz sind in dem Punkt sparsam.

    Habe schon allerlei mögliche Fehlermeldungen erhalten:

    PHP not running, Objekt nicht gefunden, komme einfach nicht drauf wo der Fehler liegt…

  6. „PHP not running“ weißt darauf hin, das PHP im Apache nicht aktiviert ist. Wie man das PHP-Modul aktiviert, steht oben im Posting. Wie man WordPress installiert, ist sehr schön auf den WordPress-Doku-Seiten erklärt.

Kommentar verfassen