Heute Abend habe ich mal PHP als fastcgi Version für den Blog hier installiert. Die Installation war relativ einfach. Zuerst die Pakete installieren:
apt-get install libapache2-mod-fastcgi php5-cgi
Anschließend in der entsprechenden Config des VServers folgendes ergänzen:
ScriptAlias /cgi /var/www/.../cgi
Action php-fastcgi /cgi/php-fastcgi
AddHandler php-fastcgi .php .phtml
AddType application/x-httpd-php .php
Options Indexes +ExecCGI
Das notwendige php-fastcgi Skript sieht wie folgt aus:
#!/bin/sh
PHPRC=“/etc/php5/cgi/“
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=200
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi
Danach das Skript noch dem User des Webservers geben und mit chattr -V +i schützen. Anschließend Apache neu starten und fertig.
Allerdings hat sich der erwünschte Erfolg nicht eingestellt. Im Gegenteil bei einigen gleichzeiten Request ging die Last bis unter die Decke (>50!!). Die Request habe ich einfach mit dem Apache-eigenen ab erzeugt:
ab -n100 -c100 http://gmbd.de/index.php
Nach ein bisschen Recherche hat sich herausgestellt, dass wohl die PHP Version von Debian Etch noch einen Fehler beinhaltet, der genau diese Last verursacht. Mit Lenny soll es funktionieren. Also werde ich wohl noch bis Ende September warten und es dann nochmal einrichten. Die andere Lösung wäre Patchen und selbst übersetzen, aber darauf habe ich keine Lust.
PS: Die Installation von fcgid funktioniert übrigens nahe zu identisch hat aber den gleichen „Erfolg“.