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
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.
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.
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);
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
É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.
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 :)
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.
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)
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); ?>
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.
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.
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
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);
_
_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/erreurvous 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)
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
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.