Schwerwiegender Fehler: Maximale Ausführungszeit von 300 Sekunden überschritten


88

Ich bekomme immer wieder diesen PHP-Fehler:

Schwerwiegender Fehler: Maximale Ausführungszeit von 300 Sekunden überschritten

Ich habe versucht, meine max_execution_timeund meine max_input_timeEinstellungen in der php.ini (sowohl Apache als auch CLI) auf zu setzen0 , -1und 4000Sekunden jeweils.

Und ich bekomme immer noch die Fehlermeldung:

Schwerwiegender Fehler: Maximale Ausführungszeit von 300 Sekunden überschritten

Außerdem läuft mein Skript über 300 Sekunden, bevor ich diese Nachricht erhalte

Ich führe das Skript über die Befehlszeile aus.

Ich habe auch meine überprüft, phpinfo()um zu sehen, welchephp.ini ich verwende.

Noch interessanter habe ich versucht, Einstellung max_execution_timeund max_input_timeEinstellungen auf 5 Sekunden und mein Skript wird weit über 5 Sekunden laufen , bevor ich das bekommen:

Schwerwiegender Fehler: Maximale Ausführungszeit von 300 Sekunden überschritten


Auf welcher Art von Server-Setup befinden Sie sich?
Pekka

1
Das ist so seltsam, dass ich das gleiche Problem mit Apache 2.4.18 und PHP 7 habe ... Verwenden von PHPMyAdmin zum Importieren von SQL .. phpinfo (); meldet andere Zeit .. Ich werde die INI-Einstellung versuchen, denke ich :(
Michael Fever

das gleiche Problem, ich versuche, set_time_limit (3603) zu setzen; ini_set ('max_execution_time', 3604); aber beide haben keine Auswirkung, die maximale Ausführungszeit beträgt immer noch 360.
Infor Mat

Antworten:


68

Am Anfang Ihres Skripts können Sie hinzufügen.

ini_set('MAX_EXECUTION_TIME', '-1');

2
füge es ganz oben in deine PHP-Datei ein
Tules

2
Diese Codezeile hebt die maximale Beschränkung der Ausführungszeit eines Codes auf, sodass ein PHP-Code (theoretisch) für immer ausgeführt werden kann.
Technotronic

2
in welchem ​​Skript?
Sagar Kodte

Oder set_time_limit(0);= gleich.
Mhor Mé

97

Wenn Sie WAMP verwenden, gehen Sie zu:

Erhöhen Sie die max_execution_timein php.inidann gehen Sie zu

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (Ändern Sie den Pfad entsprechend Ihrer Installation)

öffne config.default.phpund ändere den Wert für $cfg['ExecTimeLimit']auf 0:

$cfg['ExecTimeLimit'] = 0;

Dadurch wird das Problem bei PhpMyAdmin-Importen behoben.


@ VIPin, Ihre Lösung hat mir geholfen, insbesondere die config.default.php ;-)
Rishi Kulshreshtha

Freue mich zu helfen ! Prost :)
Vipin Dubey

Vielen Dank, nach stundenlangem Frust beim Versuch, eine 500-MB-Datenbank auf eine neuere Version von Moodle zu aktualisieren. Ich habe Erfolg. Speziell Moodle 2.2 - 2.6.
JamesTheProgrammer

2
Danke für diese Antwort! Hat meinem Problem geholfen, nachdem mir klar wurde, dass das Einstellen der maximalen Ausführungszeit in php.ini nicht genug war!
Rimble

1
config.default.phpEs geht sehr explizit darum, es nicht zu bearbeiten, und fordert uns config.inc.phpstattdessen auf , es zu bearbeiten . Ich habe versucht, es zu finden und konnte es nicht, also habe ich es mir selbst gemacht und hinzugefügt <?php $cfg['ExecTimeLimit'] = 3000; ?>. Das hat nichts getan. Ich habe beschlossen, es zu versuchen und es config.default.phphat funktioniert !! Wie sollen wir die config.inc.phpArbeit machen?!?
BillyNair

65

Xampp-Benutzer

  1. Gehe zu xampp\phpMyAdmin\
  2. Öffnen Sie config.inc.php
  3. Suchen nach $cfg['ExecTimeLimit'] = 300;
  4. Ändern Sie für unbegrenzt auf 0 oder stellen Sie einen größeren Wert ein
  5. Wenn nicht gefunden, addiere $cfg['ExecTimeLimit'] = 0;(oder einen größeren Wert)
  6. Speichern Sie die Datei und starten Sie den Server neu

8
Dies ist buchstäblich das einzige, was für mich funktioniert hat. Also danke fürs posten. In meinem Setup ist $ cfg ['ExecTimeLimit'] = 300; existierte nicht in config.inc.php, also habe ich es dort hinzugefügt, anstatt den Wert in config.default.php zu ändern - es gibt eine ziemlich große Meldung, dass der Code in dieser Datei nicht berührt werden soll;)
Ian

4
Vielen Dank für die Hervorhebung Neustart des Servers . wichtigster unvergesslicher Punkt.
Pradeep Kumar Prabaharan

4
In der Datei config.default.php befindet sich ein Hinweis mit der Aufschrift "Nein !! Nicht bearbeiten". Ich habe $ cfg ['ExecTimeLimit'] = 0 hinzugefügt; in meine Datei config.inc.php, da sie nicht existierte und zu funktionieren schien.
Brandozz

1
Dieser Beitrag hat mir den Tag gerettet und mir zum zweiten Mal geholfen !!! wie kann ich nach 3 monaten eins plus ???
Säbel tabatabaee yazdi

24

Ich bin auf eine ähnliche Situation gestoßen, und es stellt sich heraus, dass Codeigniter (das von mir verwendete PHP-Framework) tatsächlich ein eigenes Zeitlimit festlegt:

In system / core / Codeigniter.php, Zeile 106 in Version 2.1.3 wird Folgendes angezeigt:

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

Da es keine andere Möglichkeit gab, das Ändern der Kerndatei zu vermeiden, habe ich sie entfernt, um die Konfiguration über php.ini zu ermöglichen und die unendliche maximale Ausführungszeit für eine CLI-Anforderung anzugeben.

Ich empfehle jedoch, diese Änderung bei zukünftigen CI-Versions-Upgrades irgendwo aufzuzeichnen.


7
OH. MEINE. GÜTE. Ich kann das nicht glauben. Warum ist die blutige Welt so, dass sie die Ausführungszeit zusätzlich zu allen anderen bereits bestehenden Ausführungszeitgrenzen begrenzen würden? Ich habe Stunden damit verschwendet. Vielen Dank für die Veröffentlichung.
narr4jesus

1
Das ist unglaublich. Die Zeile auskommentiert und funktioniert! Warum sollte CI den Standard-PHP-Standard überschreiben und keine Dokumentation dazu bereitstellen?!
Phil Cross

Wenn Sie dies lesen und ExpressionEngine verwenden (das auf CodeIgniter basiert) ... Nun - raten Sie mal - EE überschreibt die Überschreibung von CI! Sie müssen sowohl /system/codeigniter/system/core/Codeigniter.php, Zeile 106, als auch /system/expressionengine/libraries/Core.php, Zeile 64 bearbeiten. .
Jack

@PhilCross Wenn Sie die Funktion kennen, die mehr Zeit benötigt, können Sie Jess 'Vorschlag verwenden und set_time_limit(0);in diese Funktion einfügen . Sie müssen den Kern nicht ändern: Diese Anweisung setzt das Zeitlimit zurück, sodass Sie sich beim Ausführen dieser bestimmten Funktion keine Gedanken über andere Zeilen im Kern oder in anderen Paketen machen müssen.
Armfoot

9

Versuchen Sie Folgendes in Ihrem Skript:

set_time_limit(1200);

3
set_time_limit(0);Lässt Ihr Skript für immer laufen.
Jonathon

23
set_time_limit(0); ermöglicht es Ihrem Skript, für immer ausgeführt zu werden.
Jess Telford

6

Das ist die richtige Antwort:

gehe zu

c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php

finden und einstellen

$cfg['ExecTimeLimit'] = 0;

Starten Sie alle Dienste neu und fertig.


Perfekte Antwort, danke @llioor
kach

5

Gehen Sie zu xampp / phpmyadmin / library / config.default.php

und nehmen Sie die folgenden Änderungen vor

from  $cfg['ExecTimeLimit'] = 300′;
to  $cfg['ExecTimeLimit'] = 0′;

3

Für Xampp-Benutzer

1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.

1

Die Standardausführungszeit der PHP-CLI ist unendlich.

Hiermit wird die maximale Zeit in Sekunden festgelegt, die ein Skript ausgeführt werden darf, bevor es vom Parser beendet wird. Dies verhindert, dass schlecht geschriebene Skripte den Server binden. Die Standardeinstellung ist 30. Wenn Sie PHP über die Befehlszeile ausführen, ist die Standardeinstellung 0.

http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time

Überprüfen Sie, ob Sie PHP im abgesicherten Modus ausführen, da dabei alle Exec-Einstellungen ignoriert werden.


1

Für Local AppServ

Wechseln Sie zu C: \ AppServ \ www \ phpMyAdmin \ library \ config.default.php

Suchen Sie $cfg['ExecTimeLimit']den Wert und setzen Sie ihn auf 0.

So wird es aussehen

$cfg['ExecTimeLimit'] = 0;

0

WAMP-BENUTZER:

1) Gehen Sie zu C: \ wamp \ apps \ phpmyadmin

2) Öffnen Sie config.inc

3) Addiere $ cfg ['ExecTimeLimit'] = '3600'; in die Datei.

4) Speichern Sie die Datei und starten Sie den Server neu.

Diese Datei überschreibt die php.ini und wird für Sie arbeiten!


0

In meinem Fall habe ich MySQL-Front ausprobiert, als ich auf diesen Fehler in Phpmyadmin gestoßen bin und meine erfolgreich importiert .

Hinweis: Sie können weiterhin die unter dieser Frage bereitgestellten Lösungen verwenden, um Ihr Problem in Phpmyadmin zu lösen.


Hier gibt es nichts zu sehen ... :-)
rahul

0

Wenn die obigen Antworten nicht funktionieren, versuchen Sie, Ihren Code zu überprüfen. Nach meiner Erfahrung führt eine Endlosschleife auch zu diesem Problem. Überprüfen Sie Ihre else if-Anweisung.


0

In Codeignitor Version 3.0.x enthält die Datei system / core / Codeigniter.php nicht die Zeitbeschränkung sowie das Einfügen

ini_set('MAX_EXECUTION_TIME', -1);  

funktioniert nicht, da der Codeignitor dies mit seiner eigenen Funktion set_time_limit () überschreibt. Entweder müssen Sie diese Funktion aus dem Codeignitor löschen oder Sie können sie einfach einfügen

set_time_limit('1000');

am Anfang der PHP-Datei, wenn Sie das auf 1000 Sekunden ändern möchten. Setzen Sie die Zeit auf 0 (Null), wenn Sie sie so lange ausführen möchten, wie Sie möchten.


0

Unter Xampp müssen Sie in php.ini entweder mysql.connect_timeout überprüfen. Ändern Sie es beispielsweise in:

mysql.connect_timeout = 3600

Diese Zeit wird immer in Sekunden gezählt (also 1 Stunde in meinem Beispiel)


0

MAMP-BENUTZER, die php.ini bearbeiten, lösen dieses Problem - es gibt eine Zeile:

max_execution_time = 30; Maximale Ausführungszeit jedes Skripts in Sekunden

das Setzen auf einen höheren Wert hat funktioniert.

Die Datei befindet sich in php / php5.6.25 / conf / php.ini (offensichtlich müssen Sie die Datei für die von Ihnen verwendete PHP-Version nass machen - dies können Sie den MAMP-Einstellungen entnehmen.


0

Wenn Sie auf xampp sind und phpMyadmin zum Importieren großer SQL-Dateien verwenden und die maximale Ausführungszeit, das maximale Upload-Limit für Dateien und alles Notwendige erhöht haben. Wenn keine der oben genannten Antworten für Sie funktioniert, kommen Sie hierher

Wechseln Sie in Ihren xampp-Ordner. In meinem Fall ist hier der relative Pfad zu der Datei, die ich ändern muss: C: \ xampp \ phpMyAdmin \ library \ config.default.php

/** * maximum execution time in seconds (0 for no limit) * * @global integer $cfg['ExecTimeLimit'] * by defautlt 300 is the value * change it to 0 for unlimited * time is seconds * Line 709 for me */ $cfg['ExecTimeLimit'] = 0;


-1

Sie können das Zeitlimit festlegen:

ini_set('max_execution_time', 1000000000000000);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.