Hallo Leute,
kann mir mal jemand genau erklären was der Unterschied zwischen den Apache-Direktiven AddHandler und AddType ist, beziehungsweise wann man was verwenden muss?
Hintergrund:
Ich habe lokal unter Windows XAMPP mit PHP 5.2.5 laufen.
Standardmäßig läuft PHP als Apache-Modul.
Um meine Codes mit verschiedenen PHP-Versionen zu testen, ohne jedes mal die Konfiguration zu ändern und den Apache neu zu starten habe ich die httpd.conf ein wenig modifiziert damit ich die verwendete PHP-Version verzeichnisweise über eine .htaccess-Datei ändern kann.
In der httpd.conf sieht das so aus:
Code:
ScriptAlias /pfad/php-cgi/ "Lw:/pfad/php-cgi/"
<Directory "Lw:/pfad/php-cgi">
AllowOverride All
Options Indexes FollowSymLinks MultiViews +Includes
Order allow,deny
Allow from all
</Directory>
(Unter "Lw:/pfad/php-cgi/" befinden sich Verzeichnisse mit verschiedenen PHP-Versionen, also "Lw:/pfad/php-cgi/5.1.0", "Lw:/pfad/php-cgi/5.2.5", usw.)
Die Zeilen für die .htaccess-Datei sehen folgendermaßen aus:
Code:
SetEnv PHPRC "Lw:/pfad/php-cgi/5.2.5"
AddHandler application/x-php .php
Action application/x-php "/pfad/php-cgi/5.2.5/php-cgi.exe"
Um auf eine andere PHP-Version zu switchen muss lediglich die Versionsnummer in den Zeilen geändert werden.
(Der Einfachheit halber habe ich die oben genannten Zeilen mehrfach, mit jeweils anderen Versionsnummern, in der .htaccess-Datei stehen so, dass ich nur die gewünschten Zeilen entkommentieren muss. Um auf die Modul-Version zu wechseln müssen nur alle Zeilen auskommentiert sein.)
Das funktionierte monatelang einwandfrei.
Allerdings habe ich immer nur mit einfachen Scripts gearbeitet in denen ich einzelne Funktionen getestet habe.
Heute habe ich zum ersten Mal ein Website-Projekt unter einer anderen PHP-Version getestet.
Die sah ziemlich zerschossen aus, weil das Stylesheet nicht geladen wurde.
In der Console von Firebug war zu lesen, dass...
Nach ein paar Stunden Fehlersuche bin ich dann darauf gekommen, dass eine geänderte Zeile in der .htaccess-Datei das Problem löst.
Anstatt...
Code:
AddHandler application/x-php .php
... habe ich da jetzt...
Code:
AddType application/x-php .php
... stehen.
Kann mir das jemand erklären?
Bill