dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Konfiguration

Apache: Kann ich PHP auch auf .html-Dateien anwenden?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

Prinzipiell kann man Dateien mit beliebigen Endungen durch PHP verarbeiten lassen, also auch die Endung .html. Normalerweise braucht man hierzu Zugriff auf die Apache-Konfigurations-Datei httpd.conf (wenn der Provider es nicht unterbunden hat, reicht aber auch ein Eintrag in einer .htaccess-Datei, die man einfach in sein Home-Directory stellt). Auf diese Weise lassen sich auch prima in PHP3 geschriebene Anwendungen bei einem Provider betreiben, der nur noch PHP4 anbietet (die Kompatibilität beträgt praktisch 100%, siehe Anhang B. des PHP Manuals).

Je nachdem, ob PHP in der Modul- oder der CGI-Version zum Einsatz kommt, unterscheiden sich die Konfigurationsanweisungen. Bei PHP4 ist das Modul die häufigere Art, hier sieht die Zeile meist so aus:

AddType application/x-httpd-php .php .php4 .html

Mehrere Dateiendungen schreibt man einfach durch Leerzeichen getrennt hintereinander. Beim Massenhoster 1&1 (PureTec, S+P, sowie deren Reseller) ist bei AddType eine etwas andere Syntax notwendig: AddType x-mapp-php4 .php .html

Diese Konfigurationsanweisungen können in der httpd.conf entweder in Section 2 ('Main' server configuration) stehen, in -Containern (Section 3), wo sie nur für den entsprechenden Domain-/Hostnamen gelten, oder in -Containern, wo sie nur für ein bestimmtes Verzeichnis und dessen Unterverzeichnisse gelten. Auch in .htaccess-Dateien sind sie möglich, sie gelten dann ebenfalls für nur für ein Verzeichnis bzw. dessen Unterverzeichnisse.

Betreibt man PHP nicht als Webserver-Modul, sondern als CGI (z.B. PHP3 parallel zu PHP4), sieht der Eintrag folgendermaßen aus:

AddType application/x-httpd-php3 .php3 .html
Action  application/x-httpd-php3 /cgi-bin/php
 
// Für Windows
ScriptAlias /php3/ "/path-to-php-dir/"
AddType application/x-httpd-php3 .php3
Action  application/x-httpd-php3 "/php3/php.exe"

Solange die Modulversion von PHP verwendet wird und in den verarbeiteten Dateien keine PHP PIs (SGML Processing Instructions, die PHP einschalten: <?php usw.) vorkommen, ist der Mehraufwand in CPU-Belastung und Zeitverbrauch kaum meßbar. Bei der CGI-Version entspricht der Mehraufwand dem Ausliefern jeder HTML-Seite durch ein CGI-Programm. Das kann beträchtlich sein.

Wichtig: Bei Änderungen an der httpd.conf ist ein Neustart des Apache notwendig (Linux: apachectl restart), um sie wirksam werden zu lassen.

Eine besondere Funktion kann man der Dateiendung .phps zukommen lassen, PHP stellt dann den Quellcode der Datei mit farbig hervorgehobenen Tags dar:

AddType application/x-httpd-php-source .phps

Man kann seine PHP-Dateien kopieren und als .phps speichern, dies hat jedoch Nachteile: es wird der doppelte Speicherplatz verbraucht, und bei Änderungen an der Datei muss die Kopie auch aktualisiert werden. Unter Unix/Linux kann man einen symbolischen Link auf die Datei anlegen, um dies zu vermeiden (ln -s file.php file.phps). Allerdings muss dies für jede Datei getan werden; will man alle Dateien mit der Endung .php auch als .phps abrufen können, bastelt man mit dem Apache-Modul mod_rewrite (oder auch mod_alias) eine Regel, die diese Requests abfängt und an ein PHP-Skript weiterleitet. Im Manual bei der Funktion highlight_file() findet man ein Beispiel, wie man Source Highlighting auch auf recht elegante Art mittels ForceType erreichen kann.

Apache: Kann ich PHP auch auf .html-Dateien anwenden?
http://www.php-faq.de/q-apache-parsen.html
 

Login