Hallo zusammen ...
hab heute ein kleines Script (php) vom alten auf dem neuen Server (ispCP) portiert. Beim Ausführen bekomme ich einen Fehler 500. Nach einiger Zeit Recherche hab ich den Fehler dann gefunden, jedoch konnte ich ihn leider nicht beheben.
Folgendes passiert im Script: Zuerst werden aus der DB einige Datensätze eingeladen (~ 500, kann aber auch mal mehr oder weniger sein). Aufgrund dieser Datensätze stellt das Script per HTTP-Request Verbindungen zu einem externen Server her (Anzahl der Verbindungen = Anzahl der eingelesenen Datensätze).
Diese 500 Verbindungen zum externen Server scheint meinem Neuen zu viel zu sein und gibt einen Fehler 500 aus. Begrenze ich jedoch die Anzahl der einzulesenden Datensätze auf 100 gibt es keine Probleme.
Schätze somit, dass in irgendeiner Config die Anzahl der Verbindungen nach Aussen begrenzt werden. Nur leider weiß ich nicht, welche Einstellung ich dafür abändern muss, damit die Verbindungen wieder zugelassen werden.
Würde gerne von euch wissen, an welcher Stelle ich "schrauben" muss, damit die (durchaus 500 Verbindungen) zum Externen durchgelassen werden.
Vielen Dank im Voraus!
---------------------- EDIT ----------------------
Habe den Fehler nach langem Ausprobieren nun gefunden.
Der Fehler lag in der Datei /etc/apache2/mods-available/fastcgi_ispcp.conf
Vorher
Code:
FastCgiConfig -minProcesses 1 \
-maxProcesses 400 \
-maxClassProcesses 5 \
-multiThreshold 80 \
-killInterval 60 \
-startDelay 5
# -singleThreshold 100 \
# -autoUpdate \
# -pass-header HTTP_AUTHORIZATION
Nachher
Code:
FastCgiConfig -idle-timeout 300 \
-minProcesses 0 \
-maxProcesses 400 \
-maxClassProcesses 5 \
-multiThreshold 80 \
-killInterval 60 \
-startDelay 5
# -singleThreshold 100 \
# -autoUpdate \
# -pass-header HTTP_AUTHORIZATION
Es haben also lediglich zwei Werte dazu beigetragen, dass der Fehler 500 nicht mehr auftaucht: 'idle-timeout 300' sowie 'minProcesses 0'.
Zudem habe ich die /var/www/fcgi/domain.tld/php5-fcgi-starter wie folgt abgeändert (siehe
Post)
Code:
#!/bin/sh
umask 022
# Alle alten PHP Prozesse, die dem Init gehoeren, killen
ps ax -F | awk '{ if ( $3 == "1" && $1 == "vu2005" && $12 == "/usr/bin/php5-cgi" ) { print "kill " $2 } }' | sh
PHPRC="/var/www/fcgi/domain.tld/php5/"
export PHPRC
#PHP_FCGI_CHILDREN=2
#export PHP_FCGI_CHILDREN
#PHP_FCGI_MAX_REQUESTS=500
#export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi
Hoffe ich kann mit dieser Erkenntnis auch anderen Usern helfen.
Vllt werden diese Einstellungen vom ispCP-Team für das nächste Release übernommen.
Viele Grüße und ein schönes WE an alle!