In den Ausgaben 5/2005 und 6/2005 des Linux-Magazins ist mein kurzer Workshop zu Mod_perl's zweiter Version erschienen. Hier möchte ich dem interessierten Leser nun weiterführendes Material anbieten. Im Weiteren kürze ich Mod_perl 2 als MP2 ab. Version 1 heißt demzufolge MP1.
mod_perl-2.0.0-RC5
Gleich zu Anfang eine Anmerkung. Die im Text abgedruckten Beispiele funktionieren nicht mit RC5. Dieser Release Kandidat ist weit nach Redaktionsschluss am 11.4.2005 erschienen. Leider schaffte es dann nur noch ein Kasten in die gedruckte Ausgabe, der auf diesen Umstand hinweist.
Wie kann es aber kommen, dass zu einem so späten Zeitpunkt im Entwicklungszyklus
noch Änderungen wirksam werden, die selbst einfache Beispiele inkompatibel machen?
Auf dem Weg von RC4 zu RC5 wurde ein latentes Problem beseitigt, dass die
mod_perl-Benutzergemeinde seit längerer Zeit bemängelt, nämlich der
Apache:: Namensraum.
Warum nicht Apache::?
Zu Beginn der Arbeiten an MP2 entschieden die Entwickler, den von MP1
verwendeten Apache:: Namensraum auch für Version 2 beizubehalten.
Damit würde eine MP2 Installation eine vorhandene Installation der
Version 1 zerstören. Nun ist es aber durchaus legitim auf dem selben Rechner
Apache 1 und 2 gleichzeitig zu betreiben, nur eben nicht beide mit Mod_perl.
Um das Problem zu umgehen wurden mehrere Wege vorgeschlagen, die alle nicht sehr
befriedigend waren. Bis RC4 gab es 2 Varianten, entweder man installierte den
Perl-Interpreter selbst doppelt mit unterschiedlichen Modul-Pfaden, oder man
benutzte MP2 in einen extra-Pfad. Letztere Variante wurde mit dem
automatisch erzeugten Modul Apache2.pm unterstützt.
Mit RC5 wurde ein Schnitt gemacht. MP2 benutzt nun den Apache2::
Namensraum. Damit müssen aber alle Module, die bisher mit MP2 funktionierten
angepasst werden. Die im Artikel erwähnten Beispiele sind
hier in überarbeiteter Version zu finden.
Unteranfragen und Interne Weiterleitungen
Aus Platzgründen hat es ein Abschnitt über Unteranfragen und interne Weiterleitungen nicht in die gedruckte Fassung geschafft. Da das Thema durchaus zum tieferen Verstehen beiträgt, liefere ich ihn hier nach.
Zusammenarbeit mit mod_include
Hier werden Unteranfragen im Zusammenhang mit mod_include nochmal genauer betrachtet und eine Optimierung des bisherigen Codes vorgestellt.

