Grundsätzlich gibt es zwei Wege, mod_perl in Apache einzubinden: statisch oder dynamisch. Bei ersterem entsteht ein Binary, das alle Module enthält. Beim dynamischen Binden werden die Module als dynamisch ladbare Bibliotheken erzeugt und erst beim Start des Servers zum Apache dazugeladen. Vorteil dieses Verfahrens: Man muss erst zur Laufzeit entscheiden, welche Module man einbinden will. Aus diesem Grund sind die Apache-Module in fast allen aktuellen Linux-Distributionen als dynamisch gelinkte Bibliotheken übersetzt. Hat man eine solche Linux-Version, ist lediglich sicherzustellen, dass sich die LoadModule-Anweisung für mod_perl in der httpd.conf befindet, und man kann loslegen. Bei dynamisch gelinkten Bibliotheken muss allerdings gewährleistet sein, dass alle zueinander passen und mit denselben Optionen übersetzt sind, sonst kommt es schnell zu einem Absturz des Servers. Dies führt oft bei solchen Perl-Modulen zu Problemen, die XS-Code enhalten und deshalb selbst weitere Bibliotheken hinzuladen.
Muss oder will man Apache und mod_perl selbst übersetzen, bietet es sich aus diesen Gründen an, ein statisch gelinktes mod_perl zu erzeugen. Als Voraussetzung sind Perl, Apache sowie mod_perl erforderlich.
Folgende Perl-Module werden außerdem benötigt, um die mod_perl-Tests durchführen zu können (von www.cpan.org):
Zuerst sind diese Perl-Module zu installieren, danach die Apache- und mod_perl-Archive zu entpacken
gtar xvfz apache_1.3.9.tar.gz gtar xvfz mod_perl-1.21.tar.gz
Nun ins mod_perl-Verzeichnis wechseln und mod_perl konfigurieren:
cd mod_perl-1.21 perl Makefile.PL \ APACHE_SRC=../apache_1.3.9/src \ APACHE_PREFIX=/usr/local/apache \ PERL_TRANS=1 PERL_POST_READ_REQUEST=1 \ USE_APACI=1 DO_HTTPD=1
Dabei steht APACHE_SRC für das Quellverzeichnis von Apache und APACHE_PREFIX für das Apache-Installationsverzeichnis. USE_APACI besagt, dass die APACI-Konfigurationsmethode für Apache genutzt werden und DO_HTTPD gibt an, dass make mod_perl einen lauffähigen Apache erstellen soll. Zu beachten ist auch, dass mod_perl ohne weitere Angaben nur die Schnittstelle für den Content-Handler mit übersetzt. Möchte man Handler für andere Phasen nutzen, muss man diese explizit freigeben. Um die hier vorgestellten Beispiele ausführen zu können, muss deshalb PERL_TRANS=1 PERL_POST_READ_REQUEST=1 angegeben sein. Eine Liste verfügbarer Optionen enthält INSTALL im mod_perl-Verzeichnis. Alternativ kann man mit EVERYTHING=1 alle Handler freischalten.
Apache und mod_perl übersetzen, testen und installieren:
make; make test; make install
Dabei entstehen unter anderem folgende Verzeichnisse:
Konfigurationsdateien /usr/local/apache/conf Binaries /usr/local/apache/bin Web-Inhalt /usr/local/apache/htdocs
Apache lässt sich jetzt starten:
usr/local/apache/bin/apachectl start
und im Browser sollte http://localhost/ die Apache-Dokumentation zeigen.
Nun sind lediglich die bei den einzelnen Beispielen angegebenen Konfigurationsanweisungen in httpd.conf einzutragen. Ändert man etwas an den Konfigurationsdateien, muss man Apache veranlassen, sie neu einzulesen:
/usr/local/apache/bin/apachectl graceful
Übersetzung und Installatation unter Win32 verlaufen etwas anders. Grundsätzlich ist es hier nur möglich, mod_perl als DLL zu kompilieren. Das genaue Vorgehen beschreibt die Datei INSTALL.win32. Eine Binärdistribution mit Perl, Apache, mod_perl und anderen Perl-Modulen ist unter ftp://theoryx5.uwinnipeg.ca/pub/other/perl-win32-bin-0.4.exe erhältlich.
Dieser Text ist der Zeitschriften-Ausgabe 01/2000 von iX entnommen.
iOS, Android, Windows Phone 7 und HTML5 - das neue Sonderheft von heise Developer führt Einsteiger und Profis in die Programmierung mobiler Geräte ein.