WordPress + HHVM + nginx : Eine Nischenseite auf Speed!

2. April 2015 · Kategorien: Internet, PHP, Webentwicklung

PC-Lenkrad.net

WordPress + HHVM: In diesem Artikel möchte ich einen kleinen Einblick in die Technik (WordPress, Hip Hop VM, nginx) hinter PC-Lenkrad.net geben.

Was ist PC-Lenkrad.net?

PC-Lenkrad.net ist eine simple, auf WordPress basierende Nischenseite. Die gesamte Seite war ein Wochenendprojekt von mir.
Doch in diesem Artikel soll es nicht im den Inhalt der Seite gehen, sondern allein um die Technik dahinter.

Warum WordPress? Warum HHVM?

Auch, wenn ich den Quelltext und damit verbunden die Plugin-Entwicklung von WordPress vorsichtig ausgedrückt für verbesserungsfähig halte, ist WordPress in meinen Augen auf Grund seiner großen Verbreitung ein konkurrenzloses CMS-Tool.
Die Installation geht schnell von statten, es gibt zahlreiche Themes, die man als Design-Grundlage verwenden kann und mit wenigen Plugins ist die gesamte Seite SEO-optimiert (dank Meta-Tags, Sitemaps etc.).

Auf PC-Lenkrad übrigens verwende ich das Theme FoundationPress. Es bildet eine saubere Grundlage für die Gestaltung eines eigenen Designs, ist schnell eingebunden und dank grunt und SASS einfach zu erweitern.

Als ich die Seite fast fertig gestellt hatte, wollte ich sie für Google Pagespeed optimieren. Und hier kam es zu einem Problem:
Wenn ich keinen nginx Pagecache aktiviert hatte, meldete mir PageSpeed, dass die Antwortzeit meines Servers zu hoch ist. Nun muss ich dazu sagen, dass ich nur einen preiswerten vServer von Strato.de habe (Kostenpunkt: 15 Euro im Monat). Ich bin zwar sehr zufrieden hiermit und die Verfügbarkeit ist auch sehr gut – aber große Leistungen kann man damit eben nicht erwarten.

Etwas blöd ist auch, dass ich den Server schon eine ganze Weile laufen lassen habe und meine PHP-Anwendungen alle auf Apache2 laufen – weil ich damals im Gegensatz zu nginx deutlich mehr Erfahrungen hatte. Da ich aber auch node.JS-Anwendungen laufen lasse, war ich gezwungen, nginx zu installieren, der die entsprechenden Requests an den Server entsprechend an node.JS oder Apache2 weiterleitet.

Apache2 wiederum verwendet PHP5, um PHP-Dateien zu interpretieren.

Das heißt, meine alte Konfiguration sah so aus:
nginx -> apache2 -> WordPress -> PHP5

Also nicht unbedingt die performanteste Konfiguration…

Deswegen habe ich mir einen weiteren vServer bestellt, um noch mal “ganz von vorne” zu beginnen. Meine neue Konfiguration sollte die folgende sein:

nginx -> WordPress -> HHVM

WordPress + HHVM: Installation war einfach

Auf der offiziellen Seite der Hip Hop VM wird schon ganz gut beschrieben, wie die VM zusammen mit nginx installiert wird.
Das ging ohne Probleme von statten. Besser noch: direkt, nachdem ich die WordPress-Dateien auf den Server kopiert und die MySQL-Konfiguration angepasst habe, lief die Seite wieder!
Eine Installation einer MySQL-Extension war gar nicht nötig – die Sachen sind in HHVM bereits integriert.

nginx selber kompilieren

Die Performance-Verbesserung war sofort ersichtlich. So brauchte das Laden des Dokuments der Startseite mit der alten Konfiguration im Durchscnitt 250 ms, nun sind es etwa 100 – 150.

Und siehe da: Google PageSpeed beschwerte sich auch nicht mehr über zu lange Antwortzeiten.
Trotzdem war noch nicht alles getan. So war es zum Beispiel mein Wunsch, die in WordPress hochgeladenen Bilder automatisch komprimiert an den Browser auszuliefern.

Hierfür bietet Google ein PageSpeed Module für apache2 und nginx an.

Während Module in apache2 ziemlich einfach über apt-get integriert werden können, muss nginx für ein neues Modul neu kompiliert werden. Das ist zwar umständlich, erhöht aber die Performance.

Doch auch das ging ohne weitere Probleme nach dieser Anleitung von statten.
Die Kompilierung dauerte etwa 10 Minuten. Darauf musste ich die daraus entstandene DEB-Datei installieren und nginx einmal neu starten.

Bilder, die eigentlich als JPEG hochgeladen wurden, werden nun automatisch vom nginx PageSpeed Module in WEBP konvertiert und so an den Client weitergegeben.

Fazit: Geil!

Ich bin wirklich überrascht, wie gut WordPress + HHVM zusammen funktionieren, und wie einfach es ist, mit wenig Aufwand die Performance der eigenen Seite drastisch zu erhöhen.

Wenn Du selbst HHVM mit WordPress ausprobieren möchtest: Nur zu! Wenn Du ein anderes Framework verwendet, schau am besten vorher in diese Liste, ob es bereits unterstützt wird.

Wenn Du technische Fragen zu PC-Lenkrad, WordPress + HHVM, nginx oder dem PageSpeed Modul hast, kannst Du diese gerne in den Kommentaren stellen.

Autor: | Kategorien: Internet, PHP, Webentwicklung

1 Kommentar zu WordPress + HHVM + nginx : Eine Nischenseite auf Speed!

  1. Dein Google Pagespeed Score kann sich sehen lassen ;)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *