Erreur fatale: dépassement du temps d'exécution maximal de 300 secondes


89

Je continue à recevoir cette erreur PHP:

Erreur fatale: dépassement du temps d'exécution maximal de 300 secondes

J'ai essayé de définir mes max_execution_timeet mes max_input_timeparamètres dans php.ini (à la fois apache et cli) sur 0, -1et 4000secondes chacun.

Et je reçois toujours l'erreur disant:

Erreur fatale: dépassement du temps d'exécution maximal de 300 secondes

De plus, mon script s'exécute plus de 300 secondes avant que je reçoive ce message

J'exécute le script via la ligne de commande.

J'ai également vérifié mon phpinfo()pour voir ce que php.inij'utilise.

Encore plus intéressant, j'ai essayé le réglage max_execution_timeet les max_input_timeparamètres à 5 secondes et mon script s'exécutera bien au-delà de 5 secondes avant d'obtenir le:

Erreur fatale: dépassement du temps d'exécution maximal de 300 secondes


Sur quel type de configuration de serveur êtes-vous?
Pekka

1
C'est tellement étrange que j'ai le même problème sur apache 2.4.18 et php 7 ... Utilisation de PHPMyAdmin pour importer sql .. phpinfo (); rapporte une heure différente .. J'essaierai le paramètre ini je suppose :(
Michael Fever

le même problème, j'essaie de définir set_time_limit (3603); ini_set ('max_execution_time', 3604); mais les deux n'ont aucun effet, le temps d'exécution maximum est toujours de 360.
Infor Mat

Réponses:


68

Au début de votre script, vous pouvez ajouter.

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

2
ajoutez-le tout en haut de votre fichier php
Tules

2
Cette ligne de code supprimera la restriction de temps d'exécution maximum d'un code, permettant à un code php de s'exécuter pour toujours (théoriquement).
Technotronic

2
dans quel script?
Sagar Kodte

Ou set_time_limit(0);= idem.
Íhor Mé

99

Si vous utilisez WAMP, accédez à:

Augmenter le max_execution_timedans php.inipuis passez à

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (changer de chemin en fonction de votre installation)

ouvrir config.default.phpet changer la valeur de $cfg['ExecTimeLimit']à 0:

$cfg['ExecTimeLimit'] = 0;

Cela résoudra le problème des importations PhpMyAdmin.


@Vipin, votre solution m'a aidé, surtout que config.default.php ;-)
Rishi Kulshreshtha

Heureux d'aider ! Cheers :)
Vipin Dubey

merci, après des heures et des heures de frustration en essayant de mettre à niveau une base de données de 500 Mo vers une version plus récente de moodle ...... j'ai du succès. Plus précisément moodle 2.2 - 2.6.
jamesTheProgrammer

2
Merci pour cette réponse! A aidé mon problème après avoir réalisé que définir le temps d'exécution maximum dans php.ini n'était pas suffisant!
Rimble

1
config.default.phpest très explicite de ne pas le modifier, nous disant de le modifier à la config.inc.phpplace. J'ai essayé de le trouver et je n'ai pas pu, alors j'ai créé le mien et ajouté <?php $cfg['ExecTimeLimit'] = 3000; ?>. Cela n'a rien fait. J'ai décidé d'essayer de le faire config.default.phpet cela a fonctionné !! Comment sommes-nous censés faire le config.inc.phptravail?!?
BillyNair

67

Utilisateurs Xampp

  1. Aller à xampp\phpMyAdmin\
  2. Ouvrez config.inc.php
  3. Rechercher $cfg['ExecTimeLimit'] = 300;
  4. Définissez une valeur plus grande ou passez à 0 pour un nombre illimité
  5. Si non trouvé, ajoutez $cfg['ExecTimeLimit'] = 0;(ou une valeur plus élevée)
  6. Enregistrez le fichier et redémarrez le serveur

8
C'est littéralement la seule chose qui a fonctionné pour moi. Alors merci d'avoir posté. Dans ma configuration, $ cfg ['ExecTimeLimit'] = 300; n'existait pas dans config.inc.php donc je l'ai ajouté ici plutôt que de changer la valeur dans config.default.php - il y a un message assez gros indiquant de ne pas toucher le code dans ce fichier;)
Ian

4
merci d'avoir mis en évidence le redémarrage du serveur . point le plus important à oublier.
Pradeep Kumar Prabaharan

4
Il y a une note dans le fichier config.default.php qui dit "Non !! Ne pas modifier". J'ai ajouté $ cfg ['ExecTimeLimit'] = 0; à mon fichier config.inc.php car il n'existait pas et il semblait fonctionner.
brandozz

1
cet article m'a sauvé la journée et m'a aidé pour la deuxième fois !!! comment puis-je plus un après 3 mois ???
sabre tabatabaee yazdi le

24

J'ai rencontré une situation similaire, et il s'avère que Codeigniter (le framework PHP que j'utilisais) fixe en fait sa propre limite de temps:

Dans system / core / Codeigniter.php, ligne 106 de la version 2.1.3, ce qui suit apparaît:

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

Comme il n'y avait pas d'autre moyen d'éviter de changer le fichier de base, je l'ai supprimé afin de permettre la configuration via php.ini, ainsi que de donner le temps d'exécution maximum infini pour une requête CLI.

Je recommande cependant d'enregistrer ce changement quelque part dans le cas de futures mises à niveau de la version CI.


7
OH. MON. LA BONTÉ. Je ne peux pas le croire. Pourquoi le monde sanglant limiterait-il le temps d'exécution en plus de toutes les autres limites de temps d'exécution qui existent déjà? J'ai perdu des heures là-dessus. Merci d'avoir posté.
fool4jesus

1
C'est incroyable. Commenté la ligne et fonctionne! Pourquoi CI écraserait-il la valeur par défaut de PHP et ne fournirait pas de documentation à ce sujet?!
Phil Cross

Si vous lisez ceci et que vous utilisez ExpressionEngine (qui est construit sur CodeIgniter) ... Eh bien - devinez quoi - EE remplace le remplacement de CI! Vous devrez éditer à la fois /system/codeigniter/system/core/Codeigniter.php ligne 106, ET /system/expressionengine/libraries/Core.php, ligne 64. Ce fut trois heures amusantes de ma vie à découvrir ça .. .
Jack

@PhilCross si vous connaissez la fonction qui a besoin d'exécuter plus de temps, vous pouvez utiliser la suggestion de Jess et la placer à l' set_time_limit(0);intérieur de cette fonction. Vous n'avez pas besoin de changer le noyau: cette instruction réinitialisera la limite de temps, vous n'avez donc pas à vous soucier des autres lignes du noyau ou d'autres packages lors de l'exécution de cette fonction spécifique.
Armfoot

9

Essayez quelque chose comme ce qui suit dans votre script:

set_time_limit(1200);

3
set_time_limit(0);rend votre script exécuté pour toujours.
Jonathon

23
set_time_limit(0); permet à votre script de s'exécuter pour toujours.
Jess Telford

6

Voici la bonne réponse:

aller à

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

trouver et définir

$cfg['ExecTimeLimit'] = 0;

redémarrez tous les services et c'est fait.


Réponse parfaite, merci @llioor
kach

5

allez dans le xampp / phpmyadmin / bibliothèques / config.default.php

et apportez les modifications suivantes

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

3

Pour les utilisateurs Xampp

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

Le temps d'exécution par défaut de la CLI de PHP est infini.

Ceci définit la durée maximale en secondes pendant laquelle un script est autorisé à s'exécuter avant qu'il ne soit arrêté par l'analyseur. Cela permet d'éviter que des scripts mal écrits ne bloquent le serveur. Le paramètre par défaut est 30. Lors de l'exécution de PHP à partir de la ligne de commande, le paramètre par défaut est 0.

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

Vérifiez si vous exécutez PHP en mode sans échec, car il ignore tous les paramètres d'exécution de l'heure.


1

Pour AppServ local

Accédez à C: \ AppServ \ www \ phpMyAdmin \ bibliothèques \ config.default.php

Trouvez $cfg['ExecTimeLimit']et définissez la valeur sur 0.

Alors ça ressemblera à

$cfg['ExecTimeLimit'] = 0;

1

Si vous êtes sur xampp et que vous utilisez phpMyadmin pour importer de gros fichiers sql et que vous avez augmenté le temps max_execution, la limite maximale de téléchargement de fichiers et tout le nécessaire Et si aucune des réponses ci-dessus ne fonctionne pour vous, venez ici

Allez dans votre dossier xampp, dans mon cas, voici le chemin relatif du fichier que je dois modifier: C: \ xampp \ phpMyAdmin \ bibliothèques \ 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;


fonctionne $ cfg ['ExecTimeLimit'] = 0; . merci
MindRoasterMir

0

UTILISATEURS WAMP:

1) Accédez à C: \ wamp \ apps \ phpmyadmin

2) Ouvrez config.inc

3) Ajoutez $ cfg ['ExecTimeLimit'] = '3600'; au fichier.

4) Enregistrez le fichier et redémarrez le serveur.

Ce fichier écrase le php.ini et fonctionnera pour vous!


0

Dans mon cas, lorsque j'ai rencontré cette erreur dans Phpmyadmin, j'ai essayé MySQL-Front et importé ma base de données avec succès.

Remarque: vous pouvez toujours utiliser les solutions fournies sous cette question pour résoudre votre problème dans Phpmyadmin.


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

0

Si les réponses ci-dessus ne fonctionnent pas, essayez de vérifier votre code `` D'après mon expérience, avoir une boucle infinie causera également ce problème. Vérifiez votre instruction else if.


0

Dans Codeignitor version 3.0.x le system / core / Codeigniter.php ne contient pas la contrainte de temps ainsi que l'insertion

ini_set('MAX_EXECUTION_TIME', -1);  

ne fonctionnera pas puisque codeignitor remplacera cela avec sa propre fonction set_time_limit (). Donc, soit vous devez supprimer cette fonction de codeignitor, soit simplement vous pouvez insérer

set_time_limit('1000');

au début du fichier php si vous voulez changer cela en 1000 secondes. Définissez l'heure sur 0 (zéro) si vous souhaitez l'exécuter aussi longtemps que vous le souhaitez.


0

Sur Xampp, dans php.ini, vous devez vérifier mysql.connect_timeout non plus. Ainsi, par exemple, changez-le en:

mysql.connect_timeout = 3600

Ce temps sera toujours compté en secondes (donc 1 heure dans mon exemple)


0

MAMP USERS éditant php.ini résout ce problème - il y a une ligne:

max_execution_time = 30; Temps d'exécution maximum de chaque script, en secondes

le réglage à une valeur plus élevée a fonctionné.

le fichier se trouve dans php / php5.6.25 / conf / php.ini (il est évident que vous devez mouiller le fichier pour la version php que vous utilisez - vous pouvez le trouver dans les préférences de MAMP.


-1

Vous pouvez définir une limite de temps:

ini_set('max_execution_time', 1000000000000000);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.