Weiter Komprimieren [Apache & PHP]

In diesem Blogpost noch weitere Optimierungen, die man zusätzlich zum Verkleinern mit YUI anwenden kann. Die verwendeten Methoden gzip bzw. deflate werden dabei von so gut wie jedem Browser unterstützt.

Statische Dateien

Automatisch: Apache-Webserver

Eine Möglichkeit des Komprimierens ist, dass der Apache-Webeserver dies automatisch beim Versenden übernimmt. Wie der Prozess genau funktioniert erfährt man bei Google. Um den Apache die Komprimierung übernehmen zu lassen, trägt man in die .htaccess Folgendes ein:

1
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript text/javascript image/svg+xml

Hierdurch werden HTML-, Plain-, XML-, SVG-, CSS- oder JS-Dateien durch deflate/zlib verkleinert. Jedoch existiert dabei der Nachteil, dass bei jedem Serverrequest die Daten neu komprimiert werden.

Kurze Anmerkung: Auf bereits komprimierte, ebenfalls statische Dateien wie Bilder oder Videos ist es indes nicht ratsam, sie nochmals zu komprimieren. Denn diese nochmals zu komprimieren wird wenig an der Datengröße ändern. Die CPU vom Server frisst dagegen aufgrund der meist erheblichen Größe umso mehr Strom.

Manuelle Alternative

Möchte man CPU-Last sparen, existiert auch eine alternative Variante. Hierbei werden die CSS oder JS-Dateien einmalig komprimiert und danach immer nur vom Server versendet. Außerdem ist diese Methode auch anwendbar, sobald vom Hoster das Modul Deflate bzw. gzip nicht installiert wurde. Eine detaillierte Anleitung findet sich auf tfonfara.de. Ich habe sie selbst nicht ausprobiert, da mir die Komprimierung vom Apache reicht.

Wie allerdings schon geschrieben, werden durch diese Methoden nur statische Textdateien komprimiert. Was ist nun mit dynamischen Inhalt, beispielsweise durch PHP erzeugt?

Dynamisch: PHP

Als Beispiel für eine Programmiersprache, die Inhalte immer wieder neu erstellt, wird PHP herangezogen. In der PHP.ini muss man für das gewünschte Resultat eigentlich nur eine Zeile ändern.

1
zlib.output_compression = On

Danach den PHP-Service neustarten. Wie man das macht, beschreibe ich hier nicht weiter im Detail. Grund: Es hängt beispielsweise davon ab welches OS oder Art von PHP (Apache-Daemon, per cgi etc.) man verwendet. Nach dem Neustart des Dienstes werden auch dynamische PHP-Inhalte komprimiert versendet.

Kommentare

Noch kein Kommentar zu diesem Artikel.

Neuen Kommentar schreiben