Mit einer lokalen Test- und Entwicklungsumgebung können neue Plugins, Themes, Updates oder auch der eigene Code nach Belieben ausprobiert werden, ohne einen schlechten Eindruck zu hinterlassen. Alles was du brauchst, ist eine lokaler Webserver.

Lokaler Webserver – was ist das?

WordPress ist kein eigenständiges Programm, das auf dem Windows-PC oder Mac ausgeführt werden kann. Vielmehr handelt es sich um eine so genannte Webanwendung, die einen laufenden Webserver voraussetzt, also eine Software, die auf Anfragen des Browsers reagiert, die gewünschten Informationen aufbereitet und ausliefert. Am weitesten verbreitet ist der HTTP Server Apache.

Statt selber HTML-Dateien erstellen zu müssen, enthalten die WordPress-Dateien umfangreiche Anweisungen, wie der Apache Webserver Informationen aus einer ebenfalls benötigten MySQL-Datenbank abrufen und Eingaben des Anwenders in der Datenbank ablegen soll. Diese Anweisungen sind in der Skriptsprache PHP geschrieben, die der Apache Webserver mit Hilfe eines passenden Moduls ausführt.

Damit sind auch schon die drei Voraussetzungen genannt, um WordPress auf dem eigenen Computer ausführen zu können: Apache, MySQL und PHP, abgekürzt AMP. Für das Betriebsystem, unter der dieses Paket laufen soll, wird gerne noch ein Buchstabe vorangesetzt, z.B. MAMP für das Mac OS X von Apple (auf das ich weiter unten eingehe).

Zunächst möchte ich aber kurz die Installation von XAMPP erläutern, das für verschiedene Betriebssysteme zur Verfügung gestellte wird (daher der Buchstabe „X“. Das zusätzliche „P“ steht für die von WordPress nicht benötigte Skriptsprache Perl).

XAMPP – Installation

Das Softwarepaket XAMPP kann kostenlos von der Website der Apache Friends als Installationspaket heruntergeladen werden. Zu Beginn der Installation wird abgefragt, welche Programmteile benötigt werden. Für WordPress reicht es, die Module Apache, MySQL, PHP auszuwählen, zur Einrichtung der Datenbank ist außerdem die Webanwendung phpMyAdmin sehr hilfreich. Alle anderen Pakete können abgewählt werden. (XAMPP bietet auch fertige Installationsskripte für WordPress, Drupal und Joomla! an, die wir aber hier nicht verwenden wollen.) Den vorgegebenen Installationspfad (z.B. C:\xampp) übernehmen wir einfach.

Firewall

Gleich nach dem ersten Start des Webservers meldet die Windows-Firewall, dass „einige Features dieses Programms blockiert werden“. Soll über das Internet auf den lokal eingerichteten Webserver zugegriffen werden, muss dem Zugriff hier zugestimmt werden; für eine Testumgebung, auf die ausschließlich lokal zugegriffen wird, kann der Hinweise aber einfach mit Abbrechen quittiert werden.

Control Panel

Während einem ein Web Host für Einstellungen ein Kundenmenü zur Verfügung stellt, bietet uns XAMPP ein so genanntes Control Panel (dt. Kontrollfeld), über das die installierten Module des Webservers gestartet und beendet werden. Über den Konfigurations-Button Config ganz oben rechts kann eingestellt werden, dass der Webserver beim Aufruf von XAMPP automatisch startet. Außerdem ist es sicher hilfreich, in diesem Menü die Sprache für das Control Panel auszuwählen. Abschließend ist ein Neustart von XAMPP erforderlich.

XAMPP Control Panel
XAMPP Control Panel

Läuft der Webserver fehlerfrei, werden die Module Apache und MySQL im Control Panel grün hinterlegt (siehe Abbildung). Über den Button Admin in der Zeile Apache kann nun der Internet-Browser geöffnet werden und es erscheint die Begrüßungsseite von XAMPP.

MAMP – Installation

Wegen (inzwischen behobenen) Schwierigkeiten bei der Konfiguration hat sich XAMPP bisher auf dem Betriebsystem Mac OS X noch nicht so durchgesetzt wie das Paket MAMP, das in einer kostenlosen Version unter http://mamp.info heruntergeladen werden kann. Die kostenpflichtige Version von MAMP enthält interessante Extras, die aber für eine einfache Test-Installation nicht unbedingt notwendig sind.

Konfigurationsfenster

Nach Aufruf des heruntergeladenen Installationspaketes wird der Anwender weitgehend selbsterklärend durch die Installation geführt. Danach lässt sich MAMP über das Programm-Icon im Programme-Verzeichnis /Applications/MAMP öffnen. Ähnlich wie bei XAMPP wird ein Konfigurationsfenster (siehe Abbildung) geöffnet, in dem man über eine Schaltfläche den Server starten und auch wieder beenden kann. Auch hier erscheint eine Begrüßungs-Webseite mit weiteren Informationen.

MAMP Kontrollfeld
MAMP Kontrollfeld

Port 8888

Eine Besonderheit von MAMP ist ein voreingestellter Teil der Netzwerkadresse, der Port 8888. Mit dieser Einstellung sollen Konflikte mit anderen Programmen vermieden werden. Nachteil ist, dass dieser Teil der Netzwerkadress bei jedem Aufruf im Browser angehängt werden muss. Die Webadresse zum lokalen Webserver lautet dann http://localhost:8888.

Wer mag, kann den Port über das MAMP-Kontrollfeld unter Einstellungen → Ports auf den Standardport 80 (bzw. 3306 für MySQL) umstellen, was auch die Installation von WordPress ein wenig vereinfacht, weil der Port dann bei der Adresseingabe einfach weggelassen werden kann (http://localhost).

Nach Umstellung des Ports und Neustart des Webservers sollte kontrolliert werden, ob Apache und die MySQL-Datenbank laufen. Werden die Felder im Kontrollfeld nicht grün dargestellt, liegt ein Konflikt vor und es sollten wieder die MAMP-Voreinstellungen genutzt werden.

PHP-Version

In MAMP steht bereits die gerade erschienene PHP-Version 7.0 zur Verfügung. Sollte ein WordPress-Plugin mit dieser PHP-Version nicht fehlerfrei laufen, lässt sich die PHP-Version in den Einstellungen von MAMP auf die ältere Version 5.6 zurücksetzen.

Einfügen der WordPress-Dateien

Der nächste Schritt besteht darin, die WordPress-Dateien in das Web-Verzeichnis htdocs (für HyperText Documents) zu übertragen. Wer Schwierigkeiten hat, das Verzeichnis auf Anhieb zu finden, kann im XAMPP Control Panel den Button Explorer verwenden. In der kostenlosen Version von MAMP fehlt dieser praktische Button, aber das Verzeichnis lässt sich mit dem Finder zügig im MAMP-Programmordner unter /Applications/MAMP/htdocs aufspüren.

Im Verzeichnis htdocs sind bereits HTML-, CSS- und Bild-Dateien enthalten, die wir unmittelbar nach der Installation als Begrüßungsseite gesehen haben. Damit sie uns später nicht im Weg sind, legen wir ein Unterverzeichnis mamp bzw. xampp an, in das wir die Dateien verschieben.

Jetzt fehlt nur noch die aktuelle WordPress-Version, die unter https://de.wordpress.org/latest-de_DE.zip heruntergeladen werden kann. Nachdem die komprimierte zip-Datei entpackt wurde, wird das enthaltene Verzeichnis wordpress vollständig in das Webserver-Verzeichnis htdocs verschoben.

Einrichten der MySQL-Datenbank

Das Programm MySQL wurde bereits installiert. Damit wir es in WordPress verwenden können, muss noch rasch eine eigene Datenbank erstellt werden (im Grunde ein leeres Verzeichnis), in der WordPress Informationen in verschiedenen Datenbanktabellen speichern kann. Dazu nutzen wir die bereits installierte Webanwendung phpMyAdmin.

In XAMPP kann phpMyAdmin wieder ganz bequem über das Control Panel geöffnet werden. Ein Klick auf den Button Admin in der Zeile MySQL genügt. In MAMP muss zunächst im Konfigurationsfeld der Menüpunkt Webstart öffnen angeklickt werden, danach kann phpMyAdmin über den Link Tools im Navigationsmenü gestartet werden.

phpMyAdmin
phpMyAdmin

phpMyAdmin ist ein sehr umfangreiches Programm zur Verwaltung von MySQL-Datenbanken, von dem wir aber im Moment nur den Tab Datenbanken nutzen möchten. Hier geben wir im Formularfeld Datenbankname den Namen wordpress ein, lassen das Feld Kollation unverändert und bestätigen den Vorgang mit dem Button Anlegen. Wird die neu eingerichtete Datenbank im Verzeichnisbaum links angezeigt, können wir das Browserfenster schon wieder schließen; phpMyAdmin wird vorerst nicht mehr benötigt.

Die WordPress-Installation

Nachdem wir nun alle Voraussetzungen erfüllt haben, können wir endlich mit der Installation von WordPress beginnen. Dazu rufen wir im Browser die Webadresse http://localhost/wordpress/ auf (bzw. http://localhost:8888/wordpress/, falls der von MAMP vorgegebene Port verwendet wird).

Zugangsdaten

Damit WordPress die gerade eingerichtete MySQL-Datenbank verwenden kann, müssen die Zugangsdaten in der Konfigurationsdatei wp-config.php gespeichert werden. Damit das ein wenig komfortabler geht, wird nach einem Klick auf Los geht’s! eine Eingabemaske angezeigt. Die Zugangsdaten unterscheiden sich bei XAMPP und MAMP geringfügig:

Wert XAMPP MAMP
Datenbankname wordpress wordpress
Benutzername root root
Passwort leer lassen! root
Datenbank Host localhost localhost
Tabellen-Präfix wp_ wp_

Nach Absenden dieser Zugangsdaten versucht WordPress, eine erste Verbindung zur Datenbank aufzubauen. Stimmen die Zugangsdaten nicht oder wurde noch keine Datenbank angelegt, erhalten wir eine Fehlermeldung und können anschließend die Eingabe korrigieren. Kann eine Verbindung mit der Datenbank hergestellt werden, erscheint eine Meldung, dass die „berühmte 5-Minuten-Installation“ (die bisher aufgewandte Zeit für die Einrichtung eines Webservers wird natürlich nicht mitgerechnet) jetzt ausgeführt werden kann.

Blog-Informationen

Auf der nächsten Webseite werden der Titel der Website und ein Benutzername für WordPress abgefragt. Außerdem wird ein besonders starkes Passwort vorgeschlagen, dass wir als kleine Arbeitserleichterung durch ein leichter zu merkendes Passwort ersetzen können, wenn der lokale Webserver nicht aus dem Internet angesprochen werden kann. (Aufgepasst: Soll eine lokal erstellte Website irgendwann auf einen öffentlich zugänglichen Webserver umgezogen werden, sollten Benutzername und Passwort den üblichen Sicherheitsstandards entsprechen.)

Eine E-Mail-Adresse muss prinzipiell angegeben werden und ob wir das letzte Feld zur Sichtbarkeit für Suchmaschinen anklicken, ist hier irrelevant: Suchmaschinen werden ohnehin durch die Firewall von unserem Computer ferngehalten.

Sobald diese Daten abgeschickt wurden, sollten wir eine Erfolgsmeldung erhalten, dass unsere Website installiert wurde. Wir können dies testen, in dem wir den Link http://localhost/wordpress (bei MAMP ggf. http://localhost:8888/wordpress) aufrufen.

Das Back End unserer lokalen Installation erreichen wir unter http://localhost/wordpress/wp-login.php (bzw. http://localhost:8888/wordpress/wp-login.php). Hier können wir uns nun mit den selbst gewählten Zugangsdaten anmelden und WordPress nach Belieben einrichten.

WordPress ohne Unterverzeichnis aufrufen

Da WordPress im Web-Verzeichnis htdocs in einem Unterverzeichnis wordpress abgelegt wurde, muss nun beim Aufruf im Webbrowser immer auch das Unterverzeichnis mit angegeben werden. Der Webserver kann zwar so umgestellt werden, dass dieses Verzeichnis als Web-Rootverzeichnis dient, allerdings sind dann auch einige weitere Anpassungen in WordPress notwendig. Eine andere, etwas einfachere Möglichkeit ist, die Datei index.php aus dem WordPress-Verzeichnis in das nächsthöhere Verzeichnis htdocs zu kopieren und in dieser Datei die letzte Zeile wie folgt anpassen:

[code lang=“php“]<br>
/** Loads the WordPress Environment and Template **/<br>
require( dirname( __FILE__ ) . ‚/wordpress/wp-blog-header.php‘ );<br>
[/code]

Damit diese Ergänzung von unserer WordPress-Installation richtig umgesetzt wird, rufen wir im Back End das Menü Einstellungen → Allgemein auf und ändern dort den Link für Website-Adresse (URL) auf http://localhost (bzw. http://localhost:8888 bei Verwendung des Standard-Ports für MAMP). Die WordPress-Adresse (URL) bleibt unverändert (http://localhost/wordpress), weil die WordPress-Dateien weiterhin im Unterverzeichnis wordpress liegen. Die Anmeldung im Back End erfolgt auch weiterhin über die Adresse http://localhost/wordpress/wp-login.php

Ist der Webserver einmal eingerichtet, können natürlich auch mehrere Instanzen von WordPress installiert werden. Der Benutzer hat hier die Wahl zwischen der Installation eines Blog-Netzwerkes (aka Multisite) oder vieler einzelner Installation, bei denen jeweils ein neuer WordPress-Dateiensatz in einem neuen Verzeichnis abgelegt wird. Für jede neue Instanz kann auch eine neue Datenbank eingerichtet werden; es können aber auch alle Instanzen auf die bereits eingerichtete Datenbank zugreifen, wenn bei der Installation ein unterschiedliches Tabellen-Präfix angegeben wird.

Reset-Taste für eigene Entwicklungs-Umgebung

Ist erst einmal die Hürde der Installation von XAMPP oder MAMP genommen, können mit ein wenig Übung in nur wenigen Minuten neue WordPress-Websites aufgesetzt und auch wieder gelöscht werden. Zum Löschen reicht es, das WordPress-Verzeichnis in den Papierkorb zu ziehen; die Datenbank kann mit Hilfe von phpMyAdmin entfernt werden. Wer einfach mit einer bestehenden WordPress-Installation wieder von vorne anfangen möchte, sollte einen Blick auf das praktische Plugin WP Reset werfen.

Vorteile einer lokalen Installation

Eine lokale Test- oder Entwicklungs-Umgebung ist hervorragend geeignet, neue Plugins und Themes nach Lust und Laune auszuprobieren oder sogar bewusst „kaputt zu machen“, um mögliche Grenzen kennen zu lernen. Selbst der berüchtigte White Screen of Death (der leere Bildschirm, der bei Programmierfehlern anstelle von verräterischen Fehlermeldungen angezeigt wird und damit den Zugriff auf das Back End versperrt) verliert seinen Schrecken, weil direkt auf die Dateien auf der eigenen Festplatte zugegriffen werden kann.

Wer selber ein Theme entwickeln möchte, kann außerdem seine bevorzugte Entwicklungsumgebung (IDE) verwenden, auf Automatisierungs-Werkzeuge wie Grunt, Gulp, Codekit2 (Mac) oder Prepos (Windows) zugreifen und die Ergebnisse direkt im Browser überprüfen.

Nachteile einer lokalen Installation

Hat die Sache einen Haken? Während ausgiebig getestete Plugins und Themes ganz leicht per FTP vom lokalen Server auf den öffentlich zugänglichen Webserver übertragen werden können, ist die Übertragung einer ganzen WordPress-Website ein wenig kniffelig.

Die einfache Methode, Blogbeiträge über das Menü Werkzeuge → Daten exportieren zu exportieren und anschließend in die öffentlich zugängliche Website zu importieren, scheitert bei der Übertragung von Mediendateien, da der lokale Webserver aus dem Internet nicht zugänglich ist. Bei einer Übertragung der Datenbank muss außerdem beachtet werden, dass Mediendateien in WordPress zur Suchmaschinenoptinmierung mit absoluten URLs verlinkt sind, die beim Import angepasst werden müssen.

Sehr hilfreich sind dabei Plugins wie Duplicator, die eine lokal erstellte Website archivieren und den Anwender bei der Wiederherstellung des Archivs auf dem öffentlich zugänglichen Server bei der Anpassung der URL unterstützen.

Alternativen

Rasch sollte noch erwähnt werden, dass sich inzwischen als Alternative zu lokalen Webservern Programme für virtuelle Maschinen etablieren, die einen kompletten Linux-Webserver abbilden. Damit ähnelt die Entwicklungsumgebung noch mehr einem tatsächlichen Webserver, bietet aber trotzdem den lokalen Zugriff auf die Dateien. Allerdings sind Einrichtung und Wartung einer solchen virtuellen Maschine auch komplizierter und richten sich daher eher an erfahrene Anwender.