Hallo Berhrad,
Somit wären alle meine Probleme gelöst *fg* Bis auf das Rätsel, warum das (in PHP) nur mit einer Installation als Modul funktioniert. Aber vielleicht komm ich da ja auch noch drauf, irgendwann mal ;-)
ich gebe hier wiessen zurück, die ich selbst als antwort bekommen habe:
- es geht also einerseits um:
ScriptAlias /php4/ "C:/php/"
Action application/x-httpd-php4 "/php4/php.exe"
(die fehlerhafte notation dieser könnte bei dir den fehler verursacht haben)
- anderseits um:
LoadModule php4_module c:/php/sapi/php4apache.dll
Das "1" definiert einen Apache-Handler in Form eines auf-
zurufenden CGI-Programms, das bei jeder Anforderung
eines Dokuments mit diesem MIME-Typ aktiviert wird.
Es kann in jeder beliebigen Sprache geschrieben sein;
es bekommt den URL des angeforderten Dokuments als
CGI-Parameter und kann damit tun, was es will -
LoadModule dagegen lädt ein Modul, das dem Apache in-
tern hinzugefügt wird und dauerhaft geladen bleibt.
Während der externe PHP-Interpreter (ebenso wie der
externe Perl-Interpreter) für jedes Dokument neu ge-
startet wird, ist das Modul ein integraler Bestandteil
des Apache (genau wie der SSI- und der CGI-Handler)
und muß dazu dessen interne API bedienen (Aufrufe,
Parameter, ...). Und es muß im plattformspezifischen,
kompilierten Format für dynamisch nachladbare Module
vorliegen, im Gegensatz zum oben erwähnten CGI-Skript.
(Also unter Windows eine DLL etc.)
Module sind natürlich performanter, weil die ständige
Ladezeit (und die Versorgung der CGI-Schnittstelle) für
den Handler wegfällt - je kleiner ein Skript ist (vor
allem in Relation zum Interpreter), desto mehr spart man
bei der Verwendung des Moduls als Interpreter.
Da der Interpreter aber hierbei dauerhaft geladen bleibt
und die durch ihn ausgeführten Skripte sinnvollerweise
ebenfalls (Cacheing), durchläuft er bestimmte Initiali-
sierungsroutinen nicht mehr.
Perl setzt beispielsweise zu Beginn der Interpretation
eines Skripts automatisch alle Variablen auf 'leer'.
Verläßt sich ein 'schlampiger' Programmierer auf solche
Eigenschaften, dann funktioniert sein Skript *nur* mit
dem externen Interpreter, nicht aber mit dem internen
Modul.
So gesehen machen beide Installationsformen Sinn, weil
viele Anfänger die zusätzlichen Anforderungen an ein per
mod_perl ausführbares Skript nicht verstehen werden.
In jedem der beiden Fälle muß das, was verwendet werden
soll, auch vorhanden sein. Nur merkt der Apache das Feh-
len eines Moduls bereits bei seinem Start (und bricht
diesen dann sofort ab), während er das Fehlen eines Hand-
lers lediglich beim Ansprechen eines passenden Dokuments
bemerkt und durch einen Eintrag im Error-Log quittiert
(wie bei jedem nicht gefundenen URL).
---
in meinem http.conf
sthehen beide aufrufe:
--
ScriptAlias /php4/ "C:/php/"
Action application/x-httpd-php4 "/php4/php.exe"
--
LoadModule php4_module c:/php/sapi/php4apache.dll
---
müsste ich ausprobieren, welches was "genau" macht ;-)
grüße
thomas