by JoachimDurchholz » 04. October 2007 00:01
Oh ja, das wär wirklich fein. Ich könnte das grad jetzt wirklich gut brauchen.
Auf unseren Rootservern habe ich so einen Parallelbetrieb schon konfiguriert. Hier das grundsätzliche Vorgehen:
1. PHP per CGI starten, da die Modulversionen von PHP4 und PHP5 miteinander kollidieren.
2. Damit die Performance nicht gar so grausig ist, verwendet man am besten das FastCGI-Protokoll. Das Apache-Module dafür ist mod_fcgid (mod_fastcgi läuft unter Last mit Apache 2.x nicht mehr zuverlässig und wird wohl auch nicht weiterentwickelt.)
(Leider ist weder mod_fastcgi noch mod_fcgid Teil von XAMPP, sonst hätte ich das schon ausprobiert.)
Außerdem hilft es der Performance, wenn für den Apache das worker-MPM verwendet wird - PHP läuft ja eh in einem separaten Prozess, der vom fcgid gestartet wird, da ist die einschlägige Empfehlung, für PHP immer den prefork zu verwenden, irrelevant.
3. In der httpd.conf die folgenden Zeilen:
AddHandler fcgid-script .php
<Directory />
FCGIWrapper /pfad/zur/php4.exe
</Directory>
4. In den Verzeichnissen, in denen man PHP5 haben will, eine .htaccess mit
FCGIWrapper /pfad/zur/php5.exe
5. Es sollte noch sichergestellt werden, dass die Umgebungsvariablen gesetzt sind:
* PHPRC (Verzeichnis der php.ini)
* PHP_FCGI_CHILDREN (Anzahl der PHP-Prozesse) und
* PHP_FCGI_MAX_REQUESTS (Anzahl der Requests, die eine PHP-Engine bearbeiten darf - manche PHP-Versionen machen ab dem 500. Request Schwierigkeiten, deshalb setze ich das Ding meist auf 499).