kein PHP-Error-Logging - Error 500 - wieso?

siradlib

New Member
Hallo zusammen,

da ich in meinem Typo3-Backend im Extensionmanager gern mal Timeouts bekomme, wollte ich das PHP-Logging einschalten. Ich benutze folgendes System: -
  • CentOS 5.x
  • Plesk Panel 9.5.4
  • SuExec

Trotz Angabe von

Code:
error_reporting  =  E_ALL
log_errors = On
error_log = "/var/www/vhosts/test.meineseite.de/httpdocs/phperror.log"
in der php.ini bleibt das Errorlog (innerhalb des Apache Document Root) leer. Das Logfile ist bereits angelegt und gehört dem SuExec-User des Webhostings.
Warum schweigt mich PHP immernoch an, zumindest was den 500er-Fehler angeht? PHP-Syntaxfehler beispielsweise tauchen im Logfile auf.

Wo ist mein Denkfehler bzw. der Fehler in der PHP-Konfiguration?
 
Danke für Deinen Tipp!
Leider ist der Apache auch bei "LogLevel debug" nicht sehr gesprächig- oder verstehe ich bloß seine Sprache nicht? ;)
Code:
[Tue Mar 22 23:29:15 2011] [notice] mod_fcgid: call /var/www/vhosts/test.mydomain.net/httpdocs/timetest.php with wrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper
[Tue Mar 22 23:29:15 2011] [notice] mod_fcgid: server /var/www/vhosts/test.mydomain.net/httpdocs/timetest.php(9521) started
[Tue Mar 22 23:30:09 2011] [warn] mod_fcgid: process 9521 graceful kill fail, sending SIGKILL
[Tue Mar 22 23:30:15 2011] [notice] mod_fcgid: process /var/www/vhosts/test.mydomain.net/httpdocs/timetest.php(9521) exit(communication error), get stop signal 9

einige Zeilen der php.ini:

Code:
max_execution_time = 120
max_input_time = 120
memory_limit = 512M

Wenn ich nun ein PHP-Skript laufen lasse mit "endloser" Laufzeit, wird dieses nach knapp 1 Minute durch den Error 500 abgebrochen!
Nur warum? :confused:

Das Skript:

Code:
<?php
$file="output.log";
$open = fopen($file, "a+");
fwrite($open, "LOGFILE CREATED.");
$a=0;
while(true)
{
    sleep(1);
    $a++;
    fwrite($open, $a."-");
    flush($open);
}
fclose($open);
?>
output.log enthält nach dem Lauf dieses:

Code:
LOGFILE CREATED.1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40-41-42-43-44-45-46-47-48-49-50-51-52-53-54-55-56-
 
Wieder mal: Dankeschön! :)

Ich habe eben testweise den folgenden Parameter erhöht (auskommentiert = Originalwert):
Code:
#  IPCCommTimeout 45
  IPCCommTimeout 120

Schon läuft der Prozess 131 (!) Sekunden lang. Super! :)
(Interessant ist die Ungenauigkeit, aber die ist mir erstmal egal.)

Jetzt muss ich nur noch schauen, wie ich den Wert am besten an Plesk verfüttere. Zur Not eben so wie jetzt- direkt in die Konfiguration schreiben!
 
Jetzt muss ich nur noch schauen, wie ich den Wert am besten an Plesk verfüttere. Zur Not eben so wie jetzt- direkt in die Konfiguration schreiben!

Wie erwartet kann ich die Konfigurationsoption in die Datei
Code:
/var/www/vhosts/test.mydomain.net/conf/vhost.conf
schreiben: Die vhost.conf enthält also die Zeile
Code:
IPCCommTimeout 120
Hinterher nur noch mit
Code:
# /usr/local/psa/admin/bin/websrvmng -ar
die Konfiguration neu schreiben lassen.
 
Kommando zurück!

Meine im letzten Posting beschriebene Lösung funktioniert zwar mit meinem "timetest.php"-Skript, aber leider nicht mit dem Typo3-Extensionmanager- der bringt weiterhin nach ca. 45 Sekunden einen Timeout... :confused:

Auch mit beschriebener vhost.conf-Einstellung, die laut Apache-Doku eigentlich auch innerhalb von virtual host-Direktiven verwendbar sein soll.

Es funktioniert mit Plesk und Typo3 nur, wenn ich die IPCConnectTimeout-Direktive direkt in die
Code:
/etc/httpd/conf.d/fcgid.conf
schreibe. Sehr unschön- hat jemand eine sauberere Lösung bzw. Erklärung?
 
Die Lösung liefere ich mal nach: Laut diversen Postings im Netz scheint Plesk die Einstellungen für FastCGI schlicht zu ignorieren/überschreiben.
Ich musste die FastCGI-Einstellungen für die betreffende Domain in die vhost.conf (Include-Datei für Nicht-SSL-Website) und die vhost_ssl.conf (Include-Datei für die SSL-Website) schreiben!

Also die gewünschten Einstellungen in diese Dateien schreiben (beide!):
Code:
/var/www/vhosts/test.mydomain.net/conf/vhost.conf
/var/www/vhosts/test.mydomain.net/conf/vhost_ssl.conf
und dann die Konfiguration neu erzeugen und Apache neu starten:
Code:
# /usr/local/psa/admin/bin/websrvmng --reconfigure-vhost --vhost-name=mydomain.net
# /usr/local/psa/admin/bin/websrvmng -ra


Siehe dazu auch dieses Posting.
 
Die Lösung liefere ich mal nach: Laut diversen Postings im Netz scheint Plesk die Einstellungen für FastCGI schlicht zu ignorieren/überschreiben.
Ich musste die FastCGI-Einstellungen für die betreffende Domain in die vhost.conf (Include-Datei für Nicht-SSL-Website) und die vhost_ssl.conf (Include-Datei für die SSL-Website) schreiben!

Das ist kein spezifisches Plesk-Problem, sondern betrifft mod_fcgid in der Version 2.2.x. Die fcigd.conf muss in jeden vhhost inkludiert werden. Alternativ fcgid auf 2.3.x upgraden.
 
Back
Top