web-dev-qa-db-fra.com

Erreur fatale: temps d'exécution maximal dépassé de 30 secondes

Je télécharge un fichier JSON depuis une source en ligne et, lorsqu'il passe en boucle, le message d'erreur suivant s'affiche:

Erreur fatale: temps d'exécution maximal de 30 secondes dépassé dans C:\wamp\www\temp\fetch.php à la ligne 24

373
Harsha M V

Votre boucle pourrait être sans fin. Si ce n'est pas le cas, vous pouvez prolonger la durée d'exécution maximale de la manière suivante:

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

et

set_time_limit(300);

peut être utilisé pour prolonger temporairement le délai.

678
Michiel Pater

J'ai eu le même problème et je l'ai résolu en modifiant la valeur du paramètre max_execution_time dans php.ini, comme ceci:

max_execution_time = 360      ; Maximum execution time of each script, in seconds (I CHANGED THIS VALUE)
max_input_time = 120          ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M           ; Maximum amount of memory a script may consume (128MB by default)

J'espère que cela pourrait vous aider.

173

Toutes les réponses ci-dessus sont correctes, mais j’utilise un moyen simple de l’éviter dans certains cas.

Il suffit de mettre cette commande au début de votre script:

set_time_limit(0);
43
Massa

J'ai rencontré ce problème lors de la mise à niveau vers WordPress 4.. Par défaut, WordPress limite le temps d'exécution maximal à 30 secondes.

Ajoutez le code suivant à votre fichier . Htaccess dans le répertoire racine de votre Installation de WordPress pour remplacer le paramètre par défaut.

php_value max_execution_time 300  //where 300 = 300 seconds = 5 minutes
21
Fahim

Éditer php.ini

Trouvez cette ligne:

max_execution_time

Changez sa valeur en 300:

max_execution_time = 300

300 signifie 5 minutes de temps d'exécution pour la requête http.

18
Jamil Ahmed

Votre script arrive à expiration. Jetez un coup d'oeil à la fonction set_time_limit () pour augmenter le temps d'exécution. Ou profilez le script pour le rendre plus rapide :)

16
tlenss

si tout ce qui précède n'a pas fonctionné pour vous, ajoutez un fichier .htaccess au répertoire où se trouve votre script et mettez-le à l'intérieur.

<IfModule mod_php5.c>
php_value post_max_size 200M
php_value upload_max_filesize 200M
php_value memory_limit 300M
php_value max_execution_time 259200
php_value max_input_time 259200
php_value session.gc_maxlifetime 1200
</IfModule>

c'est ainsi que j'ai résolu mon problème. Ni ini_set('max_execution_time', 86400); ni set_time_limit(86400) n'ont résolu mon problème, mais la méthode .htaccess l'a fait.

11
Nassim

Nous pouvons résoudre ce problème de 3 manières différentes.

1) Utiliser le fichier php.ini

2) Utilisation du fichier .htaccess

3) Utilisation du fichier Wp-config.php (pour Wordpress)

9
KarSho

Vous pouvez supprimer la restriction en la mettant à zéro en ajoutant cette ligne en haut de votre script:

<?php ini_set('max_execution_time', 0); ?>
9
Mwangi Thiga

Peut-être vérifier toutes les choses que vous avez changées dans le fichier php.ini. Par exemple, j'ai changé le "; intl.default_locale =" à "; intl.default_locale = en_utf8" afin de permettre "l’extension d’internationalisation (Intl)" sans ajouter le "extension = php_intl.dll" alors cette même erreur s'est produite. Je suggère donc de vérifier les erreurs similaires.

7
Mike G

Suivez le chemin /etc/php5(your php version)/Apache2/php.ini.

Ouvrez-le et définissez la valeur de max_execution_time sur celle de votre choix.

7
Suchit kumar

Augmentez le temps d'exécution de votre script en ajoutant la ligne suivante en haut du script PHP.

ini_set('max_execution_time', 120); //120 seconds = 2 minutes

La référence a pris entre Augmentez le PHP Durée d'exécution du script

5
JoyGuru

Pour étendre votre max_execution_time , vous pouvez utiliser soit ini_set ou set_time_limit .

_// Set maximum execution time to 10 seconds this way
ini_set('max_execution_time', 10);
// or this way
set_time_limit(10);
_

!! Mais sachez que les deux fonctions redémarrent également en comptant le temps que le script a déjà pris pour s'exécuter

_sleep(2);
ini_set('max_execution_time', 5);

register_shutdown_function(function(){
    var_dump(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']);
});

for(;;);

//
// var_dump outputs float(7.1981489658356)
//
_

par conséquent, si vous souhaitez définir une durée maximale exacte d'exécution du script, votre commande doit être la première.

Les différences entre ces deux fonctions sont

  • set_time_limit ne renvoie pas d’information si elle a réussi, mais émettra un avertissement en cas d’erreur.
  • ini_set renvoie l'ancienne valeur en cas de succès, ou false en cas d'échec sans avertissement/erreur
5
Buksy

vous le faites facilement avec whm. il faut juste que whm -----> configuration du service ----------> éditeur de configuration php ------- max_execution_time -----> 30 (il est par défaut le changer à n'importe quelle valeur u vouloir)

5
payal

J'ai le même problème dans le site WordPress, j'ai ajouté un fichier .htaccess qui fonctionnait alors bien pour moi.

php_value max_execution_time 6000000
2
Ankit K Gupta

J'ai apporté quelques modifications dans mon cas dans: xampp\phpMyAdmin\libraries\config.default.php

j'ai cherché: $cfg['ExecTimeLimit'] et changer la valeur à droite ...

Vous pouvez modifier valeur de droite en une valeur plus élevée, telle que "5000". et il fonctionne.

0
Imad Ullah