Nginx Webserver und MySQL für WordPress konfigurieren
Erstellung der MySQL-Datenbank + Konfiguration des aufgesetzten Nginx Webservers sind die Todos des Tutorials. Einsteigerfreundlich erklärt.
Nginx, PHP5-FPM und MySQL sind dank der detaillierten Anleitung aus dem ersten Teil der Tutorial-Serie installiert und laufen einwandfrei. Was noch fehlt, ist die nicht ganz triviale Konfiguration des Webservers und die Einrichtung einer MySQL-Datenbank für den zukünftigen Blog auf WordPress-Basis. Wir beginnen mit dem letzten Task: Der Datenbank.
Intro
Exemplarisch wird die Einrichtung der Services für die Subdomain helpdesk.wpseo.de gezeigt. Die im Tutorial aufgeführten Nutzer, Datenbanknamen und Subdomains sind entsprechend anzupassen.
MySQL-Datenbank
Zunächst loggt sich der Administrator mit den Root-Zugangsdaten für MySQL ein (dafür erst per SSH auf dem Server anmelden):
mysql -uroot -p
Neue Datenbank kreieren:
CREATE DATABASE helpdesk;
Einen separaten Nutzer definieren:
CREATE USER 'helpdesk_user'@'localhost' IDENTIFIED BY 'MEIN-PASSWORT';
Alle MySQL-Tabellen der Datenbank an den neuen Nutzer binden:
GRANT ALL ON helpdesk.* TO helpdesk_user@localhost;
Mit exit auf der Konsole verlässt man MySQL.
Der MySQL-Zugang wird später in der WordPress-Konfigurationsdatei wp-config.php hinterlegt und baut sich wie folgt zusammen:
define('DB_NAME', 'helpdesk');
define('DB_USER', 'helpdesk_user');
define('DB_PASSWORD', 'MEIN-PASSWORT');
define('DB_HOST', 'localhost');
Soweit steht die Datenbank und kann ab sofort mit Inhalten gefüllt werden.
Nginx Konfiguration
Die nächsten Schritte beschreiben eine minimale, grundliegende Justierung des Nginx-Webservers für einen WordPress-Blog. In einem der kommenden Tutorials der Serie wird eine erweiterte Kalibrierung vorgestellt, die auf Performance und Sicherheit ausgelegt ist.
Als Erstes legt man das Root-Verzeichnis für die WordPress-Instanz an:
mkdir -p /var/www/helpdesk.wpseo.de chown -R www-data:www-data /var/www
Der Verzeichnisname gehört selbstverständlich angepasst: Ordner = Domain ist eine gute Regel für mehr Übersicht auf der Serverebene. Alternativ würde auch der Projektname genügen. An diesen Speicherort (also unter /var/www/helpdesk.wpseo.de) können WordPress-Dateien via SFTP übertragen werden.
Jeder Blog bzw. jede (Sub)Domain bekommt nicht nur ein eigenes Document-Root, sondern auch eine eigene Nginx-Konfigurationsdatei. Ist keine Pflicht, doch die Trennung nach Projekten erlaubt eine maximale Flexibilität bei abweichenden Einstellungen. Aus diesem Grund erstellt der Administrator unter /etc/nginx/sites-available/ eine für das Projekt zuständige Datei mit notwendigen Webserver-Regeln. In unserem Fall trägt die Datei den Namen helpdesk.wpseo.de

Verfügbare Nginx-Konfigurationsdatei im Ordner sites-available
Innerhalb der Konfigurationsdatei werden alle Einstellungen, Weiterleitungen und andere Steuerungsmechanismen notiert. Auch kleinere Anpassungen rund um den Webserver finden dort ihr Zuhause, da Nginx keine – doch so schnell erreichbare und bequeme – Datei .htaccess unterstützt. Im Klartext: Aus der SEO-Sicht notwendige Redirects müssen ebenfalls dort behandelt werden.
Das wäre der simple Inhalt der Datei zum Copy&Paste:
server {
listen 80 default_server;
server_name helpdesk.wpseo.de;
root /var/www/helpdesk.wpseo.de;
index index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
Erläuterung
Keine Hexerei: Sieht nach wenig aus, ist es auch.
- default_server: Der virtuelle Server wird als Standard-Server festgelegt und kann im Browser direkt über die IP erreicht werden (bei einer DNS-Weiterleitung dann auch über die Domain).
- server_name: Als Servername ist die zukünftige (Sub)Domain definiert (erst bei DNS-Weiterleitungen relevant, kann auch localhost sein).
- root: Das im vorherigen Schritt zugewiesene Root-Verzeichnis der Website.
Speichern. Per Terminal als “erreichbar” markieren:
ln -s /etc/nginx/sites-available/helpdesk.wpseo.de /etc/nginx/sites-enabled/
Nginx neu starten:
/etc/init.d/nginx restart
Falls noch nicht geschehen, WordPress-Files ins Stammverzeichnis per SFTP übertragen und wp-config.php mit Anmeldedaten der MySQL-Datenbank versehen.
Beim Aufruf der Server-IP im Browser erscheint der WordPress-Installationsassistent. Das deutet auf einen fehlerfreien Betrieb des Webservers in Zusammenspiel mit WordPress hin.
Outro
Der WordPress-Blog steht ebenfalls, ist erreichbar und kann wie sonst üblich eingerichtet werden. Ein Tipp am Rande: Für SEO-freundliche Permalinks empfiehlt sich das dafür programmierte Toolbox-Modul – nach der Aktivierung können Permalinks in den WordPress-Einstellungen im Format /%postname%/ ausgewählt und genutzt werden.

Toolbox-Modul speziell für Nginx-Webserver
Hinweise
- Befinden sich WordPress-Dateien in einem Unterordner (z.B. wordpress), müsste die Nginx-Konfiguration nachträglich angepasst werden.
- Plugins, die für ihre korrekte Funktionsweise die Datei .htaccess beansprucht hatten, dürfen unter Nginx nicht länger zum Einsatz kommen und gehören abgestimmt oder abgestellt.
Tutorials der Serie