Auch Entwickler brauchen Platz zum Spielen

21. Februar 2012 /

Nginx + PHP5-FPM + APC + MySQL für WordPress installieren

Nginx ist die leistungsfähigere Alternative zum weltweit berühmten Webserver Apache. Nginx wurde auf Performance, Erreichbarkeit und Stabilität eines Servers optimiert, sodass die Software auf Websites mit extrem hoher Last (wie z.B. wordpress.com) zum Einsatz kommt. Dieser Artikel ist der erste Teil einer Tutorial-Serie, die beschreibt, wie Nginx installiert, eingerichtet und genutzt wird. Mit WordPress als Schwerpunkt.

Voraussetzungen
Für die Inbetriebnahme von Nginx wird ein Hoster benötigt, der solche Installationen auf seinen Maschinen erlaubt und Kunden mit root-Zugängen ausstattet. JiffyBox wäre ein preiswerter Kandidat. Die Anleitung geht von einer Serverumgebung laufend unter Debian squeeze 64 Bit aus.

Installation
Nach einem erfolgreichen SSH-Login via Konsole aktualisieren folgende Befehle die interne Liste mit Download-Quellen auf dem Server.

echo "deb http://packages.dotdeb.org squeeze all" > /etc/apt/sources.list.d/squeeze-dotdeb.list
gpg --keyserver keys.gnupg.net --recv-key 89DF5277
gpg -a --export 89DF5277 | apt-key add -
aptitude update

Im Anschluss startet die eigentliche Installation der Komponenten: Nginx Webserver, PHP5-FPM samt Module, MySQL-Server.

aptitude install nginx
aptitude install php5-fpm php5-mysql php5-gd php5-curl php5-apc
aptitude install mysql-server

Anmerkungen

  1. Während der Installation des MySQL-Servers erscheint plötzlich eine in Blau hinterlegte Abfrage für das MySQL-Passwort des root-Nutzers. Bitte dran denken, die Eingabe aufzubewahren.
  2. PHP-Module können jederzeit nachinstalliert werden, falls sich Anforderungen im Laufe des Blog-Betriebs ändern sollten. Das installierte Zusatzmodul APC (php5-apc) beschleunigt zusätzlich die Ausführung der PHP-Skripte, da diese im schnelleren Shared-Memory der Server-Instanz abgelegt werden. Das WordPress Caching-Plugin Cachify setzt ebenfalls auf APC.
Nginx MySQL-Password

Passwort-Abfrage für den MySQL-Server

Start
Nach einer erfolgreichen Installation können die einzelnen Dienste gestartet (und später mit gleichen Befehlen rebootet) werden:

/etc/init.d/mysql restart
/etc/init.d/php5-fpm restart
/etc/init.d/nginx restart

Ab diesem Zeitpunkt ist Nginx als Webserver in Betrieb und liefert statische Inhalte an Clients aus. Das sollte der Aufruf der Server-IP in der Adressleiste des Browsers bestätigen: Welcome to nginx!

PHP-Aktivierung
Nginx ist von Haus aus tatsächlich so konfiguriert, dass ausschliesslich statische Dateien (HTML, Bilder, etc.) verarbeitetet und zurückgegeben werden. PHP ist zwar jetzt auf dem Server installiert und gestartet, doch das muss Nginx erst kommuniziert werden. Zur Veranschaulichung reicht vorerst das simple Einkommentieren der bereits vorbereiteten Zeilen in der Nginx-Konfigurationsdatei. Diese Default-Datei befindet sich unter /etc/nginx/sites-available/, kann via Transmit erreicht und im Editor geöffnet werden. Dort nachfolgende Zeilen finden und Sternchen vor den Befehlen entfernen.

location ~ .php$ {
  fastcgi_split_path_info ^(.+.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

Ein Neustart quittiert jede Änderung der Konfiguration:

/etc/init.d/nginx restart
Nginx Default-Site

Standardeinstellungen des Nginx-Webservers in der Datei "default"

Ab sofort interpretiert Nginx jede Datei mit der Endung .php als ein PHP-File und startet entsprechend den PHP-Interpreter. Zum Ausprobieren der korrekten Funktionsweise kann eine Datei namens phpinfo.php mit nachfolgendem Inhalt unter /usr/share/nginx/www erstellt, abgelegt und im Browser via http://meine.ip/phpinfo.php aufgerufen werden:

<?php phpinfo() ?>

Outro
Erscheint die erwartete Übersicht an PHP-Informationen, hat alles wunderbar funktioniert. Nginx und PHP5-FPM arbeiten perfekt.

Tutorials der Serie

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.