PHP "max_execution_time" wird ignoriert

stefan1994

New Member
Hallo,

ich kämpfe mich gerade mit einem Problem herum das ich nicht ganz verstehe.

Ich hab ein PHP Script das z.B. ~120 Sekunden laufen soll. Ich hab die "max_execution_time" in der php.ini deshalb auf 300 gestellt. Leider lauft das Skript noch immer nicht rund.
Ich verwende eine Standard Froxlor installation mit FastCGI auf Ubuntu 10.04 64 Bit.

Zum Testen habe ich daraufhin "max_execution_time" auf 15 gesetzt.
Ein Aufruf des Skripts sieht dann jedoch so aus:

  • 00:00:00 - Aufruf des PHP Files
  • 00:00:15 - PHP Fatal Error wird erwartet da die maximale laufzeit erreicht wurde
  • 00:00:30 - Apache gibt einen "500 Internal Server Error" aus
  • 00:01:00 - PHP Script wird laut "/var/log/apache2/error.log" beendet

Im Apache2 error.log steht folgendes:
Code:
[Sun Aug 28 12:52:49 2011] [notice] mod_fcgid: call /var/customers/webs/user/folder/test.php with wrapper /var/www/php-fcgi-scripts/user/domain.tld/php-fcgi-starter
[Sun Aug 28 12:53:40 2011] [warn] mod_fcgid: process 18736 graceful kill fail, sending SIGKILL
[Sun Aug 28 12:53:46 2011] [notice] mod_fcgid: process /var/customers/webs/user/folder/test.php(18736) exit(communication error), get stop signal 9


Könnte mir das bitte einer erklären und sagen wie ich die Scriptlaufzeit erhöhen kann?

MfG.
Stefan
 
Benutzt Du zufällig Plesk mit FastCGI-Modul? Dann schau mal hierher!
Mist! Du benutzt ja Froxlor- aber bist evtl. trotzdem von diesem Problem betroffen (siehe letzte Postings im verlinkten Thread)!
 
Last edited by a moderator:
Sicher das du die richtige PHP.ini Datei erstellt hast?

Erstell dir mal eine Datei mit

<?php

phpinfo();

?>

Da findet du zum einen den Pfad der php.ini Datei die eingebunden wird, zum anderen wird dort auch der Wert von max_execution_time angezeigt.

Ansonsten nach dem ändern der Werte in der php.ini ein apach2 force-reload oder restart nicht vergessen ;)
 
@siradlib
Nein das hat mir leider nicht geholfen. :(

@JaEgErmEistEr
phpinfo() sagt mir das die max_execution_time auf 15 gesetzt ist.

Ich hab nun noch ein bisschen herumprobiert, der 500 Internal Server Error kommt nach genau 40 Sekunden. Wenn ich das Script via SSH ausführe und am Anfang des Skriptes "set_time_limit(15);" setze wird es nach 15 Sekunden beendet. Komisch daran ist jedoch das kein PHP Error ausgegeben wird.
Code:
user@host:~ /usr/bin/php5 -q /var/customers/webs/user/folder/test.php
Script start
Script loop...
Script loop...
[...]
Script loop...
Script loop...
user@host:~
Das "Script loop..." kommt aus einer endlos schleife. Danach steht noch ein "print('Script end');", es wird also mit Sicherheit abgebrochen und nicht zu ende ausgeführt.



Könnte vielleicht jemand der auch Froxlor mit PHP betreibt folgendes Script ausführen und berichten was passiert?
PHP:
<?php
set_time_limit(5);
print('start');
while(true){
    print('loop');
}
print('end');
?>
 
Last edited by a moderator:
Back
Top