Webserver Nginx mit PHP-FPM installieren

By | 17. Dezember 2011

Heute habe ich mal etwas mit dem nginx-Webserver gespielt. Nginx hat ja den Ruf Ressourcen schonender zu sein als der Apache. Dafür habe ich genau den richtigen root-Server zur Hand. Mit gerade mal 250MB RAM muss hier auf jedes MB-Speicher geachtet werden.
Als erstes habe ich den Server komplett neu mit Debian (Lenny) aufgesetzt. Es sollte noch nichts weiter installiert sein.

sources.list anpassen

Als aller erstes müssen wir zwei Quellen in die /etc/apt/sources.list aufnehmen. In den Standart-Repository finden wir leider nicht das notwendige php5-fpm-Paket.

da die Quelle signiert ist laden und importieren wir den Schlüssel

danach werden die Pakete-Quellen eingelesen und upgedatet:

Nun sollte unser System auf dem aktuellen Stand sein und die eigentliche Installation kann beginnen.

Nginx installieren

der Server wird durch die Installation gestartet und sollte uns jetzt mit der default-Seite begrüßen.

jetzt die wichtigsten PHP5 Sachen

wer kein apc verwenden möchte, kann das natürlich weglassen oder php5-xcache laden

jetzt noch mySQL und wir sind fast fertig

Unsere Umgebung ist jetzt soweit fertig. Der PHP-FPM hört standardmäßig auf 127.0.0.1:9000
Nun geht es an das Feintunig:
die PHP.ini welche für FPM genutzt wird findet Ihr unter

sämtliche PHP-Erweiterungen legen ihre Config Path

Nun beginnt die eigentliche Arbeit, das Feintunig. „Out of the Box“ läuft der Server zwar schon einigermaßen, aber ich bevorzuge eigentlich xCache. Ich werde mal versuchen beide PHP-Cache-Systeme auf diesem Server zu vergleichen.
Dazu schreibe ich aber eventuell etwas in einem späteren Beitrag :P

Ein erster Test mit ApacheBench zeigt aber auch gleich ein gravierendes Problem: Bei zu vielen gleichzeitigen Request startet der PHP5-FPM zu viele Clientprozesse und zwingt das System zum swapen da der RAM nicht mehr ausreicht.

Also habe ich schon mal erste Eingriffe an der Konfiguration vorgenommen:
/etc/php5/fpm/pool.d/www.conf

Somit kann dieser Server bei maximal 20 gleichzeitigen Anfragen, etwa 3 Anfragen pro Sekunde bearbeiten. Das ist nicht viel aber für einen Webserver mit einem AMD Athlon XP 1600+, SingleCore & 250MB-RAM schon nicht schlecht.