Apache und PHP Performance Tuning in Debian [HowTo]

Heute möchte ich kurz zeigen wie Ihr Eurem Apache/PHP WebServer mehr Power gebt.

Es gibt diverse Möglichkeiten, eine Webseite zu beschleunigen. Zuvor hatte ich schon darüber gebloggt wie Ihre den Datenstrom zwischen Server und Client packt um die Transferzeiten zu minimieren. Auf dem Server müssen die Webseiten aber erst aufbereitet werden, bevor diese transferiert werden können. Ein großen Vorteil haben statische Elemente wie Bilder, Html-Seiten etc. Setzt man jedoch PHP ein, muss die Seite immer geparst und interpretiert werden. Diese Operationen benötigen Zeit, und belasten auch die Leistung des Servers.

Setzt man auf Caching Mechanismen kann man ohne Verlust der Webseitendynamik einfach „statische“ Seiten erzeugen. Ein Liste der Verfügbaren PHP-Chaches findet Ihr hier. Ich persönlich habe mich für den Einsatz des APC (Alternative PHP Cache) entschieden.

apcphp

Die Installation auf Debian ist denkbar einfach durchzuführen.

Es werden nun alle notwendigen Pakete installiert. Um die neue Funktionalität nutzen zu können, muss der Apache noch einmal durch gestartet werden.

Beim Besuch Eurer Seite solltet Ihr nun einen ordentlichen Performance Zuwachs merken. Wenn Ihr Euch nicht sicher seid, ob der APC richtig läuft, dann legt einfach ein Datei (phpinfo.php) mit folgendem Inhalt an und ruft diese im Browser auf:

Das Ergebnis sollte in etwas so aussehen:

phpinfo

Sucht einfach nach APC auf der Seite um zu validieren ob der Cache läuft:

phpinfo_apc

Webseiten performance Optimieren mit gZip Kompression

Wie ihr wisst (vielleicht) läuft mein WebServer auf Debian Squeeze. Die Konfiguration und Verwaltung mache ich mit froxlor. Für alle diejenigen welche froxlor nicht kennen,  hier der Link zum Projekt.

Da auf meinem Server diverse Projekt, Shops, Seiten etc. gehostet sind, bin ich immer daran mein möglichstes für gute Performance zu tun. Zudem werden mehr als 50% der Anfragen von mobilen Geräten gesandt. Diese Anfragen werden dann wiederum zu 60% aus dem mobilen Netz gesendet.

Setzt man nun die gZip Kompression ein, wird die Antwortzeit minimiert, aufgrund der geringeren Datenmenge welche zu übertragen ist. Und das merkt man natürlich in langsamen mobilen Netzen am meisten.

Man kann die gZip Kompression auf 2 Arten bereitstellen.

  1. php.ini
  2. .htaccess

Option 1

Aktiviren der Kompression in der php.ini. Hierzu muss lediglich der folgende Code eingefügt werden.

 

Option 2 (präferiert)

Die 2. Option benötigt lediglich die Veränderung der .htacces Datei. Die Datei wird von modernen PHP-System wie WordPress standard im Wurzel (root) Verzeichnis der Installation erzeugt.

Unterstützt der Webserver die Module deflate und filter nicht, können diese für Apache so aktiviert werden.

mod_deflate aktivieren

mod_filter aktivieren

Verlinkt habe ich noch ein Video, wie die gZip Kompression funktioniert.

Quelle: How grip compression works