Beschleunige Dein WordPress Blog!
Ein schneller Blog ist schon eine tolle Sache für den Besucher. Seitdem aber Google Seitenladezeiten in die Bewertung von Webseiten aufnehmen möchte, ist es spätestens jetzt Zeit Dein Blog zu Höchstleistungen zu verhelfen. Und das geht sogar sehr sehr einfach.
Zuerst sollte man sich einen PHP Beschleuniger besorgen. Hierfür braucht man zwar einen dedizierten oder virtuellen Server mit Root-Zugriff, aber ich denke das sollte eh jeder haben, der eine schnelle Seite betreiben will. PHP ist eine Skriptsprache, d.h. es muss jedes mal, wenn wer darauf zugreift, erst geparst und dann interpretiert werden. Ein Opcode cache speichert den kompilierten Code zwischen, sodass hier eine Menge Zeit gespart werden kann. Ich zeige euch hier, wie man APC einrichtet, weil es besonders einfach auf Debian Lenny zu installieren ist. Zuerst führt man folgenden Befehl als root aus:
aptitude install php-apc
Danach bearbeitet man die /etc/php5/conf.d/apc.ini und hängt folgendes ran:
extension=apc.so [apc] apc.enabled = 1 apc.shm_size = 64 apc.ttl = 7200 apc.user_ttl = 7200 apc.mmap_file_mask = /tmp/apc.XXXXXX
Jetzt Apache mit /etc/init.d/apache2 restart neu starten und APC ist fertig eingerichtet.
Als nächstes ist mod_expires dran. Mod_expires kümmert sich um das Client-seitige Cachen von Daten und ist meist bereits installiert. Man muss es nur mit a2enmod expires aktivieren. Danach öffnet man die Standardkonfigurationsdatei für Vhosts (normalerweise/etc/apache2/conf.d/default-config) und fügt die folgenden Zeilen hinzu:
ExpiresActive On ExpiresDefault "access plus 300 seconds" ExpiresByType text/html "access plus 1 day" ExpiresByType text/css "access plus 1 day" ExpiresByType text/javascript "access plus 1 day" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 day"
Jetzt wieder Apache mit /etc/init.d/apache2 restart neu starten und schon cachen die Besucher fröhlich vor sich hin.
Jetzt ist ein WordPress caching plugin dran, dass APC unterstützt, wie z.B. W3 Total Cache. Dort richtet man einfach “Page Caching”, “Minify” und “Database Caching” mit Opcode APC ein und fertig.
Eine optionale Sache gibt es für Seiten, die viele statische Inhalte haben (z.B. Bilder). Da gleichzeitige Verbindungen nach Hostnamen limitiert ist, muss ein Browser immer warten, bis aktuelle Bilder fertig geladen sind, bevor es neue laden kann. Um das Problem zu umgehen kann man einfach Mirrors der Seite mit ServerAlias in der Virtual-Host-Konfigurationsdatei erstellen. Man sollte aber aufpassen, dass jede Datei genau einem Mirror zugewiesen wird (z.B. über eine Wrapper Funktion), da ansonsten die selbe Datei von mehrfach heruntergeladen wird und das die Ladezeit beeinträchtigt. Ich hatte um das Problem zu lösen, eine Funktion geschrieben, die eine Zahl aus einem Dateinamen berechnet. Diese Nummer verwendete ich dann als Subdomain, von der dann die Datei geladen wird.
Mit diesen Einstellungen konnten ich die Ladezeiten von meinen Webprojekten von durschnittlich 10-20s auf 1-2s reduzieren (Ladezeit inkl. Bilder und Skripte). Es fühlt sich echt schön an, wenn die Seiten so schnell laden.
Hallo,
qTranslate ist ein großartiges Plugin. Leider ist der Wechsel zwischen den Sprachen mit qTranslate in meinem Blog nicht mehr möglich, seitdem ich W3 Total Cache installiert habe. Nur mit ausgeschaltetem Page-Caching können beide koexistieren
Any chance that qTranslate and W3 Total Cache will start working together?
You will have to use Super Cache as W3 isn’t supporting any other plugins yet.
Will qTranslate support WordPress v.3 ?