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
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





