Verständnisproblem: Apache Modul vs. DSO

Alles, was den Apache betrifft, kann hier besprochen werden.

Verständnisproblem: Apache Modul vs. DSO

Postby fellfresse » 06. May 2008 19:50

Hallo,

ich versuche gerade tiefer in Apache einzusteigen, scheiter aber schon an missverständlichen Aussagen in Fachliteratur.
Ich bin der Meinung das ich z.B. PHP als Apache Modul installieren kann oder als Dynamic Shared Object.
In einem Buch lese ich nun folgendes:
"Zum Laden eines Moduls muss die entsprechende Zeile in die Konfigurationsdatei httpd.conf des Servers eingefügt werden. Eine solche Zeile hat das folgende Format:
LoadModule <Modulname> <Verzeichnisname>/<Dateiname>

Beispiel Modul mod_ssl:
LoadModule ssl_module modules/mod_ssl.so

Damit der Code eines solchen Moduls überhaupt in den Adressraum geladen werden kann muss dieser als dynamic shared object (UNIX) oder dynamic linked library (Windows) vorliegen."

Da sind nun beide Begriffe (Modul und DSO) miteinander erklärt?!?!? Gibt es denn nun nur Apache Module und diese Module müssen als DSO vorliegen? Existiert denn nur eine Installationsvariante als Modul/DSO oder beides?

Es geht im wesentlichen um die Anbindung von PHP oder Python an den Apache. Ich würde gerne eine Empfehlung bekommen wo ich die Varianten ausführlich nachlesen kann. Derzeitige Literatur war da nich so ergiebig.

Danke
fellfresse
 
Posts: 1
Joined: 06. May 2008 19:39

Postby Nobbie » 06. May 2008 21:26

>Ich bin der Meinung das ich z.B. PHP als Apache Modul installieren kann oder als Dynamic Shared Object.

Nein.

PHP kann als Modul installiert werden oder als externes Programm im sog. CGI-Mode. Dann ist es ein vollständiges eigenes Programm (unter Windows mit Extension *.exe).

Wenn es als Modul installiert werden soll, muss es als Shared Library (oder auch Object genannt) geladen werden. Theoretisch könnte man es auch statisch in Apache hineinlinken, aber das wird eben nicht gemacht (wer auch immer das so entschieden hat).

Alle Apache Module (in anderen Umgebungen werden solche Dinge auch Plugins oder Extensions genannt) müssen als Shared Objects vorliegen, das ist eben die Konvention, die man getroffen hat, um Module dynamisch anzubinden.

Zu Python gibt es momentan wohl keine funktionierende Variante als Model (sprich als Library), somit bleibt die Anbindung via CGI, also die Einbindung des Pythoninterpretes python.exe über die sog. Shebang-Zeile, die erste Zeile eines Scripts:

Code: Select all
#!c;/python25/python.exe


Diese Zeile muss am Anfang eines jeden Python-Scripts stehen, die Scripts müssen die Extension *.cgi haben. Wenn *.py gewünscht ist, muss das in httpd.conf via AddHandler eingestellt werden.
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Postby Nobbie » 06. May 2008 21:54

*** doppel post ***
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 1 guest