Open Source im professionellen Einsatz

Grundinstallation

Die Installation von PHP-FPM hat sich bedeutend vereinfacht, seit der Prozessmanager in die PHP-Version 5.3.3 eingegangen ist. Das Einspielen als separates Patch gehört damit der Vergangenheit an. Da die meisten Distributionen bereits entsprechende Binärpakete bereithalten, entfällt auch das Kompilieren von PHP. Unter Debian oder Ubuntu installiert das folgende Kommando die benötigten Komponenten:

sudo apt-get install php5-fpm nginxmysql-server php5-mysql php5-gd php5-curl

Debian und Ubuntu richten dabei bereits passende Initskripte ein und starten die Dienste. Wer sie von Hand neu hochfahren muss, verwendet folgende Befehle:

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

Empfehlenswert sind zudem das PHP-Hardening-Patch Suhosin [6] und der Cache APC [7].

Ob Nginx korrekt gestartet ist, lässt sich mit einem Aufruf der Serveradresse im Webbrowser testen. Erscheint dort die Seite "Welcome to Nginx", war die Installation erfolgreich.

Die Basiskonfiguration unter Debian und Ubuntu ist für den produktiven Magento-Betrieb nicht optimal. Daher empfiehlt es sich, die Konfiguration in der Datei »/etc/nginx/nginx.conf« an die eigenen Rahmenbedingungen anzupassen.

Nginx-Optimierung

Listing 1 zeigt einen Auszug aus der Konfigurationsdatei. Von besonderem Interesse ist die Option »worker_processes« . Ein guter Richtwert für diese Prozesse liegt zwischen 1 und der Anzahl der CPU-Kerne des jeweiligen Systems. Wenn auf dem System noch weitere Anwendungen neben Nginx laufen, etwa PHP-FPM und MySQL, sollte es weniger Worker-Prozesse geben, als CPU-Kerne im System vorhanden sind.

Listing 1

Auszug aus nginx.conf

01 user www-data;
02 worker_processes 2;
03 pid /var/run/nginx.pid;
04
05 events {
06         worker_connections 48;
07 }

Die Direktive »worker_connections« legt fest, wie viele parallele Verbindungen ein Worker-Prozess annehmen darf. Im Beispiel oben sind dies 48, was bei zwei Worker-Prozessen insgesamt 96 gleichzeitige Verbindungen ermöglicht. Das sind relativ wenige im Vergleich zu der Standardkonfigurati-on, die 1024 Verbindungen pro Worker-Prozess erlaubt.

Das liegt daran, dass Nginx in der Regel nur statische Dateien ausliefert oder als Reverse Proxy und Loadbalancer eingesetzt wird. Der Engpass ist hier nämlich nicht Nginx, sondern der Speicherbedarf der PHP-Interpreter. Magento benötigt aufgrund seiner Komplexität vergleichsweise viel Speicher. Die Limitierung der Nginx-Verbindungen orientiert sich daher an den maximal verfügbaren PHP-Ressourcen.

Die auf PHP bezogenen Konfigurationsdateien liegen unter Debian und Ubuntu im Verzeichnis »/etc/php5/fpm« . Relevant ist dort zunächst die Datei »php.ini« , die Einstellungen für den PHP-Interpreter enthält. Da Magento relativ hungrig nach Arbeitsspeicher ist, sollte der Admin den Wert für das »memory_limit« auf »128M« erhöhen. Zusätzlich empfehlenswert ist es, die Option »expose_php« auf »off« zu setzen, damit die verwendete PHP-Version nicht öffentlich gemacht wird.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook