60 votes

Augmenter le temps d'exécution maximum de php

J'ai ajouté set_time_limit(0); pour augmenter le temps d'exécution, mais il ne s'exécute que 2 à 3 minutes au maximum.

error_reporting(E_ALL);
error_reporting(1);
set_time_limit(0);

Je souhaite rechercher des liens à partir d'un site qui prend beaucoup de temps.

0voto

symcbean Points 27412

Il y a probablement une limite fixée dans votre serveur web. Certains navigateurs/proxies mettent également en place un délai d'attente. Invoquer des processus en cours d'exécution depuis longtemps via une requête HTTP est tout simplement stupide. La bonne façon de résoudre le problème (en supposant que vous ne puissiez pas accélérer le traitement) est d'utiliser la requête HTTP pour déclencher le traitement en dehors du groupe de session du serveur web, puis d'interroger le statut via HTTP jusqu'à ce que vous obteniez un ensemble de résultats.

0voto

seven Points 608

C'est une vieille question, mais si quelqu'un la trouve aujourd'hui, il y a de fortes chances que php soit exécuté via php-fpm et mod_fastcgi. Dans ce cas, rien ici ne pourra aider à allonger le temps d'exécution car Apache mettra fin à la connexion à un processus qui ne produit rien pendant 30 secondes. La seule façon de l'allonger est de modifier -idle-timeout dans la configuration d'Apache (module/site/vhost).

FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /run/php/php7.0-fpm.sock -idle-timeout 900 -pass-header Authorization

Plus de détails - Augmenter le délai d'attente de PHP-FPM

0voto

Essayez de fixer un délai plus long max_execution_time :

<IfModule mod_php5.c>
    php_value max_execution_time 300
</IfModule>

<IfModule mod_php7.c>
    php_value max_execution_time 300
</IfModule>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X