Ach hat sich das Projekt doch schön angehört: „Ersetze das aktuelle Webserver- und Datenbank-System durch zwei neue Systeme: Webserver Frontend und Datenbank-Server Backend“. Je länger ich mich mit der Thematik beschäftige, um so umfangreicher und komplizierter gestaltet sich die ganze Sache.
Die erste Überlegung war ja noch recht simpel. Dabei sollte der Apache durch den AOLserver und der MySQL-Server durch PostgreSQL ersetzt werden. Nach einiger Frickelei habe ich es in dieser Konstelation zum laufe bekommen. Leider läuft die Homepage auf einem abgewandelten PostNuke, was nicht mit einer PostgreSQL Datenbank betrieben werden kann.
Also fix wieder MySQL auf dem Test-System installiert. Dummerweise ist der AOLserver nicht dazu gemacht, um mit MySQL zusammen zu arbeiten *narf*.
Was nun?
Was gibt es denn noch an alternativen Webservern, die über PHP mit MySQL arbeiten? Zusammen mit Google habe ich folgende Möglichkeiten entdeckt:
- Zeus: ein kommerzieller Webserver
- Apache 1.3: der am weitesten verbreitete Webserver
- Apache 2: ein Rewrite des am weitesten verbreiteten Webservers
- thttpd: ein Webserver, der lediglich statischen Content liefert (abgesehen von CGI, was in meinem Fall uninteressant ist), das aber sehr schnell
- lighttpd: ein kleiner Webserver, der laut Autor um einiges schneller als der Apache ist
- Tux: ein Webserver, der direkt auf Kerneleben statischen Content ausliefert und weitere Anfragen an einen anderen Port weiterleitet.
Der Apache 1.3 fällt schonmal weg, weil er in Version 2 einiges mehr an Performance bringt. Zeus fällt weg, da er einfach zu teuer ist. Daraus ergeben sich dann folgende Kombinationsmöglichkeiten:
- Apache 2 für statischen und dynamischen Content
- lighttpd für statischen und dynamischen Content
- Apache 2 für dynamischen Content und thttpd für statischen Content
- lighttdp für dynamischen Content und thttpd für statischen Content
- Apache 2 für dynamischen Content und Tux für statischen Content
- lighttpd für den dynamischen Content und tux für den statischen Content
Um festzustellen welche Kombination die beste Performance bringt, bin ich auf die Suche nach entsprechenden Benchmarks und Vergleichstest gegangen. Leider gitst keine passenden Test, die die einzelnen Alternativen dierkt vergleichen. Auch einzelne Tests lassen sich nicht miteinander vergleichen. Wenn es nichts gibt, dann macht man sich eben selber welche.
Wenn das mal so einfach wäre…
Es gibt einfach keine Benchmark-Tools, die vergleichbare Zahlen ausspucken. Aus einer riesigen Menge an unbrauchbaren Tools habe ich mich für den Apache Bech entschieden. Denn selber einen Benchmark zu programmieren würde definitiv zu weit gehen.
Damit ich jetzt realistische Tests machen kann, muss ich natürlich die Homepage auf das Testsystem bringen. Schnell via SSH auf dem Server eingeloggt, den Document-Root gepackt und runtergeladen. Aber was dauert denn dan so lange?
Tjoa, das sind mal eben 1,5 GB die ich da runterladen muss. Nach einiger Zeit war das dann auch endlich erledigt. Jetzt war das Archiv aber kaputt *aufreg*! Ist das Archiv bei der Übertragung kaputt gegangen? Ist das Archiv auf dem Server schon kaputt?
Lassen wir das erstmal und machen ein Dump von der MySQL Datenbank. Nach ca. 20 Minuten ist das Dumpfile fertig.Ab auf PHPmyAdmin und den Dump auf das Testsystem überspielen: ERROR: 30 seconds timelimit exceeded *richtig sauer werd*. Also auf die Konsole und die Datei von dort direkt in die Datenbank einspielen. Ich sehe einige Minuten viele Zeilen auf dem Bildschirm scrollen. Bis wieder ein Fehler auftrat: MySQL kann den Befehl nicht interpretieren *argh*. Nach einem flüchtigen Blick in das Dumfile sehe ich auch schon was los ist: der Dump ist fehlgeschlagen. Also wieder auf den Server via SSH und dort nochmal ein Dump gezogen.
Dann fiel mir ein, dass ich ja noch das Kennwort auf der Datenbank ändern muss, damit ich nicht alle Konfigurationsdateien anpassen muss von den PHP-Scripten. Joa, durch meine Unwissenheit habe ich dann die Datenbank unzugänglich gemacht *TILT*
Das war mir dann zu viel und ich hab Feierabend gemacht. Ich freu mich schon auf morgen…