ich betreibe einen Server mit Apache2 / PHP5-FastCGI. Die Installation habe ich nach der Debianhowto.de Anleitung durchgefuehrt. Einziger Unterschied: Nichts selbst kompiliert, ausschliesslich vorhandene und offizielle Pakete verwendet (weil die Anleitung hier nicht allzu aktuell ist).
Das hier habe ich weggelassen...
Code: Select all
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
Server lief perfekt bis eine Sache eines Kunden aufkam: Per fopen eine PHP-Datei auf dem gleichen https-VHost zu oeffnen. Nach einer Wartezeit war ein Error 500 zu sehen, in den Logfiles wurde von "incomplete headers", "segmentation faults" und mehr geredet (gerne kann ich bei Interesse ein paar entsprechende Auszuege hier posten).
Hier das fopen Testscript:
Code: Select all
<?
$url = "https://www.domain.tld/index.php";
if ($fd = @fopen($url,"r"))
echo "Success";
else
echo "Failure";
fclose($fd);
?>
Nun fiel mir nach langem Hin und her auf, dass es kein Problem ist, Dateien auf anderen Webservern bzw VHosts auf der gleichen Maschine zu oeffnen. Nur auf dem gleichen VHost kam es zu Problemen. Die Kroenung: Durch Zufall fiel mir dann auch noch auf, dass nur PHP-Dateien die Probleme verursachen. TXT oder HTML konnte problemlos geoeffnet werden.
Des Raetsels Loesung fuer mich: Diese beiden Zeilen...
Code: Select all
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
Ein zuvor ausgefuehrter "ps aux | grep php" ergab auch, dass bisher eben nur ein Childprozess gestartet wurde. Kein Wunder also fuer mich, dass sich der Server dann schwer tat, zwei PHP-Dateien gleichzeitig zu interpretieren.
Nun frage ich mich folgendes:
1) Warum funktioniert dieses vielgelobte Prozessmanagement nicht?
2) Warum funktionierte das Testscript auf dem identisch konfigurierten http-Host?
:roll:
Vielleicht kann mir hier jemand weiterhelfen... Denn obwohl das Problem geloest ist, bleiben fuer mich jetzt an sich noch mehr Fragen zurueck wie vorher. V.a. weil ich nun u.U. vor dem Problem stehe, mir fuer die Anzahl der Childs etwas ueberlegen zu muessen.
Viele Gruesse,
Roi