Maximum execution time of 30 seconds exceeded

WRInaute occasionnel
Salut,

J'ai le message d'erreur ci-dessous qui s'affiche lors de l'éxécution d'un de mes scripts php :

Code:
Fatal error: Maximum execution time of 30 seconds exceeded in....

J'ai EasyPHP 5.3.1 (PHP 5.3.3 ; Apache 2.2.16 ; MySQL 5.1.49)

J'ai 2 fichiers php.ini (1 dans C:\Program Files (x86)\EasyPHP\apache et l'autre dans C:\Program Files (x86)\EasyPHP\conf_files)

Je suis sous W7 en 64 bits

J'ai modifié mes 2 fichiers php.ini en remplaçant le max_execution_time = 30 par max_execution_time = 1200

J'ai rebooté mon serveur local (j'ai même re-démarré mon ordinateur, vidé mon chache) mais j'ai toujours le message d'erreur qui s'affiche lorsque j'exécute un de mes scripts php, je pige plus rien :(

J'ai vérifié que le max_execution_time = 1200 était bien présent dans mes 2 fichiers php.ini et c'est bien le cas, que faire de plus pour augmenter le max_execution_time ?

Merci pour votre aide.
 
WRInaute accro
Tu as vérifié ce que te dit phpinfo()?

Le paramètre ne serait pas aussi modifié par la conf Apache?

Jacques.
 
WRInaute occasionnel
Merci pour vos réponses.

J'ai regardé mon phpinfo() et là surprise le max_execution_time est à 30 secondes alors que dans mes fichiers php.ini il est à 2400 secondes, je ne pige plus rien !!! 8O

J'ai regardé dans le fichier de config d'apache mais je n'ai pas trouvé de ligne concernant le max_execution_time !

Comment faut-il faire pour modifier cette valeur (max_execution_time) dans un script php ?

Avez-vous d'autres idées pour régler ce problème de config de mon fichier php.ini ?
 
WRInaute accro
Tu n'aurais pas un ini_set pour ce paramètre quelque part dans ton php (probablement via un include)?

Jacques.
 
WRInaute accro
toto2525 a dit:
Comment faut-il faire pour modifier cette valeur (max_execution_time) dans un script php ?[/quotepar exemple
Code:
set_time_limit(600); //fixe un délai maximum d'exécution de 600 secondes soit 10 minutes.
 
WRInaute occasionnel
jcaron a dit:
Tu n'aurais pas un ini_set pour ce paramètre quelque part dans ton php (probablement via un include)?
Je dois chercher dans mon code php ou dans le fichier php.ini ?

Leonick a dit:
set_time_limit(600);
Merci set_time_limit marche parfaitement :)

Mais c'est quand même énervant de devoir mettre un set_time_limit dans mon code php et de ne pas pouvoir régler cela via le php.ini :evil:

Si vous avez d'autres idées, je suis preneur :D
 
WRInaute accro
ini_set c'est dans le code php.

L'autre possibilité, c'est que le php.ini que tu modifies n'est pas celui qui est utilisé.

Jacques.
 
WRInaute accro
plus de 30 seconde de travail pour un truc destiné au web c'est pas viable (je voie mal un visiteur attendre une page 10mn)
Donc si le besoins est pour du web ton problème suivant est que ça servira a rien de bidouiller ça.

En revanche si ta limite est génante pour un script local destiné a toi et toi seul utilise php en console il n'y aura pas de limite d'execution.

[zeb@localhost ~]$ php -f /chemin/ton-script.php
 
WRInaute occasionnel
jcaron a dit:
ini_set c'est dans le code php.
C'est sur je n'utilise pas d'ini_set dans mon code php

jcaron a dit:
L'autre possibilité, c'est que le php.ini que tu modifies n'est pas celui qui est utilisé.
C'est ce que je pense mais là je tourne en rond parce que lorsque j'ouvre mes fichiers php.ini qui sont dans C:\Program Files (x86)\EasyPHP\apache et C:\Program Files (x86)\EasyPHP\conf_files la ligne max_execution_time est bien à 1200 et non pas 30, idem lorsque j'ouvre le fichier php.ini via => clic droit sur l'icone EasyPHP => Configuration => PHP.

Je deviens dingo !!! :x
 
WRInaute occasionnel
zeb a dit:
plus de 30 seconde de travail pour un truc destiné au web c'est pas viable (je voie mal un visiteur attendre une page 10mn)
Donc si le besoins est pour du web ton problème suivant est que ça servira a rien de bidouiller ça.
En revanche si ta limite est génante pour un script local destiné a toi et toi seul utilise php en console il n'y aura pas de limite d'execution.
C'est pour un script en local.

zeb a dit:
utilise php en console il n'y aura pas de limite d'execution.
[zeb@localhost ~]$ php -f /chemin/ton-script.php
Comment tu fais pour utiliser php en console ?
 
WRInaute occasionnel
J'avance un peu, si j'ouvre EasyPHP en tant qu'administrateur (exécuter en tant qu'administrateur) en faisant un clic droit sur le fichier C:\Program Files (x86)\EasyPHP\EasyPHP-5.3.3.exe et que je consulte le phpinfo() le max_execution_time est bien à 2400 secondes. Mais j'ai à l'ouverture d'easyPHP une popup warning qui s'ouvre :
PHP starttup: Unable to load dynamic library 'C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;......C:\PROGRA~2\EasyPHP\Apache\bin;C:\PROGRA~2\EasyPHP\PHP5\php\ext\php_bz2.dll' - Le module spécifié est introuvable"
Comment faire pour ne plus avoir cette popup warning ?
 
WRInaute accro
zeb a dit:
plus de 30 seconde de travail pour un truc destiné au web c'est pas viable (je voie mal un visiteur attendre une page 10mn)
en fait, je n'utilise cette option là que pour mon backoffice online et pour certaines stats, cela peut prendre du temps. C'est pourquoi je n'augmente cette valeur que sur de très rares scripts de mon backoffice et surtout pas dans la config du php. Car avec un timeout à cette valeur là, tu risques de mettre ton serveur web en surcharge
 
WRInaute accro
idem et plus rarement pour des scripts genre galerie photo ou les miniatures sont générées a la première visite (du coup par moi en fait)
 
WRInaute occasionnel
Je ne pense pas que l'utilisation de php en mode console soit ma solution...

J'ai désactivé l'UAC (Contrôle des comptes d'utilisateur) de mon ordi et ça marche, lorsque je clique sur le bouton d'easyPHP et que je fais un phpinfo() il m'indique bien que le max_execution_time est bien à 2400 secondes mais j'ai pas mal de fenêtres popup warning qui s'ouvrent à l'ouverture d'easyphp, il faut que je désactive ces extensions php....

Je viens de m'apercevoir qu'en faites lorsque je démarre easyPHP en tant qu'administrateur et que j'ouvre un de mes sites en local il m'affiche de nouveau les erreurs du type "Deprecated: Function ereg() is deprecated in" alors que dans mes fichiers php j'ai déjà effectué les changements en remplaçant la fonction ereg par preg_match, je vais devenir dingue avec ce windaube seven :evil:
 
WRInaute accro
ce n'est pas une question de windows seven, les erreurs affichées viennent de la version de php et du niveau d'affichage des erreurs que tu as paramétré
 
WRInaute occasionnel
Leonick a dit:
ce n'est pas une question de windows seven, les erreurs affichées viennent de la version de php et du niveau d'affichage des erreurs que tu as paramétré

Lorsque je démarre EasyPHP en tant qu'administrateur (clic droit sur le fichier .exe) le phpinfo() m'indique que le max_execution_time est à 2400 secondes mais lorsque je démarre easyPHP normalement le phpinfo() m'indique que le max_execution_time est à 30 secondes. C'est comme si j'avais sur mon ordi 2 fichiers php.ini dans 2 emplaçements distinct, c'est bien un problème du à windows seven (avec le contrôle des comptes utilisateurs) ça, non ? Je pige plus rien :x
 
WRInaute occasionnel
J'ai trouvé :D :D

Il y a en fait 2 fichiers php.ini sur mon ordi qui sont stockés dans :

C:\Users\PC-Bureau\AppData\Local\VirtualStore\Program Files (x86)\EasyPHP\apache

et un autre dans :

C:\Program Files (x86)\EasyPHP\apache

J'avais modifié le php.ini qui est dans C:\Program Files (x86)\EasyPHP\apache mais pas dans C:\Users\PC-Bureau\AppData\Local\VirtualStore\Program Files (x86)\EasyPHP\apache (ne connaissant pas son existence), j'ai modifié manuellement le fichier php.ini dans C:\Users\PC-Bureau\AppData\Local\VirtualStore\Program Files (x86)\EasyPHP\apache
j'ai lançé le phpinfo() et il m'indique maintenant que le max_execution_time est à 2400 secondes....
 
WRInaute occasionnel
Punaise je vais devenir chèvre 8O

Lorsque je démarre easyphp en tant qu'administrateur et que j'ouvre un de mes sites en local il m'affiche les erreurs du type "Deprecated: Function ereg() is deprecated in..." alors que j'ai effectué les modifications de ces fichiers php il y a quelques jours, c'est comme s'il pointait vers mes anciens fichiers (non corrigés), comment savoir vers quels fichiers php (emplacement sur mon disque dur) il pointe ?

Lorsque j'ouvre http://127.0.0.1/ il me liste mes sites et m'indique dans la colonne "Last modified" le jour de la dernière modification, eh bien pour l'un de mes sites il m'indique la date de dernière modification du 1 octobre alors que j'ai modifié ce site hier.... :evil: punaise on est bien en novembre, non ?

J'ai renommé le répertoire "EasyPHP" qui était dans C:\Users\PC-Bureau\AppData\Local\VirtualStore\Program Files (x86)\EasyPHP\apache afin qu'il n'y ai plus de fichier doublon sur mon ordi...
 
WRInaute accro
installe plutôt wamp à la place : il est bien plus pratique à utiliser et, surtout, on peut utiliser différentes versions de php/mysql/apache et en changer à la volée. Pratique quand tous les serveurs de prod n'ont pas les mêmes versions
 
WRInaute occasionnel
J'ai installé Wamp sur mon ordi mais j'ai un petit souci :(

J'ai un fichier index.php qui est dans C:/wamp/www/mon-site.com/index.php et j'ai le bout de code php ci-dessous dans ce fichier index.php mais lorsque j'appelle la page http://localhost/mon-site.com/ il m'indique cette erreur : Warning: require(C:/wamp/www//include/globale.php)

Code:
$nomdomaine = explode("/",$_SERVER['PHP_SELF']);
if(getenv("HTTP_HOST")=="127.0.0.1"){$nomdomaine2 = "".$nomdomaine[1]."/";}
else{$nomdomaine2 = "";}
require ($_SERVER['DOCUMENT_ROOT']."/".$nomdomaine2."include/globale.php");

La variable $_SERVER['PHP_SELF'] me renvoie pourtant bien le nom de domaine de mon site, je pige pas ! Quelqu'un voit-il ce qui déconne ? Ca marchait très bien avec easyPHP !
 
WRInaute accro
comment as-tu défini ton DOCUMENT_ROOT dans ton vhost ? a-t-il un "/" à la fin ? si oui, tu en as rajouté déjà 1 dans ton "require"
 
WRInaute occasionnel
Leonick a dit:
comment as-tu défini ton DOCUMENT_ROOT dans ton vhost ? a-t-il un "/" à la fin ? si oui, tu en as rajouté déjà 1 dans ton "require"
La variable DOCUMENT_ROOT me retourne c:/wamp/www/ j'ai essayé d'enlever le "/" à la fin mais ça change rien.

Est-ce que mon souci ne peut pas venir du "localhost" (adresse http local http://localhost/mon-site.com/) et du "127.0.0.1" qu'il y a dans mon code php ? Mais si je remplace dans mon code php le "127.0.0.1" par "localhost" ça ne change rien :cry:

Dans Warning: require(C:/wamp/www//include/globale.php) il manque le nom de domaine (mon-site.com) entre le .../www/ et /include//globale.php je devrais avoir si ça fonctionnait C:/wamp/www/mon-site.com/include/globale.php

J'ai fais un echo "".$_SERVER['PHP_SELF'].""; dans mon script index.php et il retourne bien "/mon-site.com/index.php".

if(getenv("HTTP_HOST")=="localhost"){echo "Ca marche en localhost";} il n'affiche rien.

if(getenv("HTTP_HOST")=="127.0.0.1"){echo "Ca marche en 127.0.0.1";} il n'affiche rien.

:? :?
 
WRInaute accro
je ne développe jamais avec localhost comme url, j'utilise toujours un vhost qui "ressemble" au vrai, du genre en local tu aurais vvv.example.com et en distant www.example.com et, surtout pas, avec le répertoire par défaut.
 
WRInaute occasionnel
Leonick a dit:
je ne développe jamais avec localhost comme url, j'utilise toujours un vhost qui "ressemble" au vrai, du genre en local tu aurais vvv.example.com et en distant http://www.example.com et, surtout pas, avec le répertoire par défaut.
D'accord mais quand tu as 15 sites web en local dans le répertoire c:/wamp/www/ tu fais comment ?
 
WRInaute accro
justement, je n'en ai aucun dans ce répertoire. Tout se trouve dans des sous-répertoires d'un autre répertoire, avec "quasi" la même arborescence que sur les serveurs de prod.
j'ai un répertoire "c:\web" qui contient un sous répertoire pour chacun des (sous-) domaines que j'utilise. et j'en ai quelques dizaines...
 
WRInaute occasionnel
Leonick a dit:
justement, je n'en ai aucun dans ce répertoire. Tout se trouve dans des sous-répertoires d'un autre répertoire, avec "quasi" la même arborescence que sur les serveurs de prod.
j'ai un répertoire "c:\web" qui contient un sous répertoire pour chacun des (sous-) domaines que j'utilise. et j'en ai quelques dizaines...

Est-ce que tu as Wamp et W7 sur ton ordi ?
 
WRInaute occasionnel
Leonick a dit:
j'ai un répertoire "c:\web" qui contient un sous répertoire pour chacun des (sous-) domaines que j'utilise. et j'en ai quelques dizaines...
Quel est l'avantage d'avoir tes sites dans un répertoire C:\web plutôt que dans C:\wamp\www\ ?

Est-ce que si je fait cela ça va résoudre mon problème ?
 
WRInaute accro
l'avantage, c'est que pour la sauvegarde, je ne sauvegarde que le répertoire de données.
Pour ton problème, déjà, en mettant un répertoire de données différents, tu sauras qu'en dehors des fichiers de config, tu n'auras rien à toucher dans les fichiers de c:\wamp et ça te permettra de ne pas avoir un fichier d'un site qui impacte sur les autres sites, car faisant appel aux mêmes ressources
 
WRInaute occasionnel
Ok qu'est-ce qu'il faut changer dans la config d'apache (et/ou php) si je met mes sites dans C:\web ?

*****************************

Je suis une nouille :oops: : je n'avais pas téléchargé le bon fichier d'installation de wamp, il existe un fichier d'installation pour W7 64bit.

J'ai donc ré-intallé la bonne version de wamp (W7 64bit) et là surprise ça fonctionne :D

Je voudrais maintenant lorsque je clique sur "Localhost" dans l'icone Wamp qui est dans la barre de tache que mon browser ouvre http://127.0.0.1/ plutôt que http://localhost/ comment faut-il faire ?
 
Discussions similaires
Haut