Hallo Holm,
Du schreibst:
>ähm na logisch habe ich ne info.php zum testen im root des jeweiligen
>apache2 dirs liegen, bloss sehe ich in der Ausgabe leider nicht ob php
>als cgi oder als Modul geladen wird.
>
>Wo steht denn das dort ?
Wenn Du die Ausgabe von phpinfo() anschaust, findest Du im oberen Kopf
der Ausgabe die Zeile "Server API":
- die Angabe "Apache 2.0 Handler" bedeutet, PHP wurde als PHP-Modul
aufgerufen (unter dem Apache 2.0 Webserver)
- die Angabe "CGI/FastCGI" bedeutet, PHP wurde als CGI aufgerufen
und zwar in diesem Falle als FastCGI.
>>> Und dann verseth ich nicht wann php4 als Modul und wann als cgi
>>> benutzt wird ?
>>
>> Es wird dann als Modul benutzt wenn man seinem Apache gesagt hat das
>> er das Modul laden soll.... ansonsten ist ein Handler zu definieren
>> welcher das Programm php (in seiner CGI Form) aufruft.
>>
>>
>> z.B Apache 1:
>> LoadModule php5_module libexec/libphp5.so
>> AddModule mod_php5.c
>>
>> DirectoryIndex index.php index.php3 index.php4 index.htm index.html
>> AddType application/x-httpd-php .php .php4 .php3
>> AddType application/x-httpd-php-source .phps
>>
>>
>> Bei Apache2 entfaellt das AddModule.
>
>genau hier liegt mein Verständnisproblem. Ich hab php als Modul geladen.
>Es wird scheinbar auch benutzt. Indem ich das hier aktiviere im
>jeweiligen vhost wird also php4 als cgi ausgeführt?
>
>AddType application/x-httpd-php .php .php4 .php3
>AddType application/x-httpd-php-source .phps
Nein, damit wird PHP4 nicht als CGI ausgeführt.
Die Erklärung ist ganz einfach, wenn Du Dir genau die Namen der
benutzten Direktiven anschaust und Dir die Logik des Apache-
Servers verinnerlichst:
- "LoadModule" weist den Apache Server an, ein Modul zu laden
("load" = lade, "Module" = Modul...).
Wenn Du dies in deiner Konfiguration stehen hast, dann versucht
der Apache-Server das Modul zu laden - ob es dann auch
angesprochen wird, hängt von einer weiteren Direktive, nämlich
"AddType" ab. Die Direktive "LoadModul" lädt und aktiviert
erstmal nur das Modul.
vgl. http://httpd.apache.org/docs/2.0/mod/mod_so.html#loadmodule
Ob Du PHP als Modul laden möchtest oder nicht, hängt von Deinen
Sicherheitsbedürfnissen und Deiner Serverumgebung ab (weiter-
führende Stichworte hierzu sind: mehrere Benutzer auf einem
Webserver (chroot, suExec, ...) und Zuteilung von Ressourcen
zu einzelnen Virtualhosts (FastCGI), ...).
Es läßt sich übrigens nur ein PHP-Modul in den Apache laden.
Das bedeutet, wenn Du gerne mehrere PHP-Versionen benötigst
(z.B. PHP4 und PHP5 gleichzeitig auf einem Server), dann kann nur
eine dieser Versionen als Modul eingebunden werden - die andere
PHP-Version mußt Du dann als CGI/FastCGI aufrufen.
- AddType = zusätzliche Direktive, die den Apache Server anweist,
Dateien mit einer speziellen Extension (z.B. ".php") einem
MIME-Typ (z.B. dem geladenen PHP-Modul) zuzuordnen.
Beispiel:
Die Anweisung
AddType application/x-httpd-php .php .php4 .php3
weist den Apache an, alle Aufrufe mit dem Kürzel ".php" dem
(vorher mit LoadModule geladenem) Apache-Modul zuzuordnen.
vgl. http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addtype
- "AddHandler" zusammen mit "Action" weist den Apache Server
dagegen an, bei einem Aufruf einer Datei mit einer gewissen
Extension (z.B. ".php5" oder ".cgi") diesen Aufruf an einen
speziellen Handler zu übergeben (AddHandler).
Die Aktion, die beim Auftreten dieses Handlers ausgeführt
wird, ist im Fall von PHP-CGI der PHP-Interpreter oder FastCGI.
Mit "AddHandler" und "Action" kannst Du also dafür sorgen, dass
der PHP-Interpreter als CGI (oder FastCGI) aufgerufen wird.
vgl. http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler
und http://httpd.apache.org/docs/2.0/mod/mod_actions.html#action
Mit Hilfe dieser Direktiven kannst Du also sowohl PHP als Modul
als auch PHP als CGI aufrufen - es kommt nur darauf an, welche
Direktive Du letztendlich nutzt.
Viele Grüße
Marcus Reimann
M. Reimann Systemberatung
http://www.reimann-systemberatung.de
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an [EMAIL PROTECTED]
sonstige Anfragen an [EMAIL PROTECTED]
--------------------------------------------------------------------------