PHP ausführen
hola
- webserver
0 volker
Hola!
Folgenden Eintrag habe ich in meiner httpd.conf:
Alias /bla "E:\Verz"
<Directory "E:/Verz">
Order Allow,Deny
Allow from all
Options Indexes MultiViews
AllowOverride All
HeaderName /server/Apache/header.htm
ReadmeName /server/Apache/footer.htm
IndexOptions FancyIndexing FoldersFirst SuppressHTMLPreamble HTMLTable
</Directory>
Das funktioniert wunderschön: Beim Aufruf von http://servername/bla bekomme ich eine FancyIndexed-Seite, wo oben mein header.htm und unten mein footer.htm steht, und ich kann alles mit CSS gestalten, etc. etc..
Nun habe ich jedoch unter dem Verzeichnis E:\Verz 640 Unterordner, und ich möchte wohl kaum für jeden einzelnen eine header.htm-Datei ablegen (ich habe in dieser den Ordnername groß stehen). Was bietet sich also mehr an, als eine header.php zu erstellen, die dynamisch den Ordnernamen ausgibt ?
Das ist eigentlich kein Problem, denke ich mir. Falsch gedacht !
Bei
HeaderName /server/Apache/header.php
und einer korrekten header.php baut Apache header.php _nicht_ vor sein e selbstgenerierte Ordnerübersicht.
In der Apache-Doku steht, man soll noch
AddType text/html .php
hinschreiben, wenn man eine CGI-Anwendung aufrufen will, aber bei
AddType text/html .php
HeaderName /server/Apache/header.php
gibt Apache alle PHP-Dateien auf dem Webserver ohne sie an php weiterzugeben aus - sprich er gibt alle PHP-Dateien "ungeparst" aus.
Also, damit scheine ich auf dem Holzweg zu sein - wie gibt es abhilfe ? Wie kann ich eine PHP-Datei als "Header" über die dynamisch generierten Ordner-Indexe einbinden ?
vielen dank,
hola
In der Apache-Doku steht, man soll noch
AddType text/html .php
hinschreiben, wenn man eine CGI-Anwendung aufrufen will, aber bei
das reicht noch nicht. damit sagst du dem apachen lediglich dass es einen neuen dateityp mit der endung .php gibt. du musst ihm aber auch sagen was er denn damit machen soll, falls ihm eine solche datei unterkommt. dabei gibts zwei möglichkeiten: entweder du nutzt php als cgi-executable, oder du bindest es als modul ein. ich würde die zweite methode empfehlen, weil als executable für jeden php-request ein neuer prozess gestartet wird, was deinen webserver schnell ans limit bringen kann.
besorge dir die dll´s und füge in deiner httpd.conf nach den LoadModule-anweisungen das folgende ein:
LoadFile "..pfad../php4ts.dll"
LoadModule php4_module "..pfad../php4apache2.dll"
das ganze gilt für windows, unter linux haben die module die endung *.so
ausserdem sind php-files nicht vom typ text/html, sondern:
AddType application/x-httpd-php .php .php4 .php3
gruss aus berlin, volker