Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1514 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Fatal error: Allowed memory size of 33554432 bytes exhausted

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fatal error: Allowed memory size of 33554432 bytes exhausted

n°1888338
xphanoo
Posté le 27-05-2009 à 09:03:28  profilanswer
 

Bonjour,
 
Je développe un site PHP/MySQL, une de ses fonctions est de générer un fichier Excel (d'environ 450Ko donc assez gros) à partir d'informations dans la base de données.
Tout marche bien quand je teste en local, sous Windows, avec XAMPP. En revanche, après avoir basculé mon site sur le 'vrai' serveur (Linux Debian, config matérielle bien plus puissante que mon PC de test avec XAMPP), la génération de ce fichier Excel plante !
 
Il me renvoie comme erreur:

Code :
  1. Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 46 bytes) in /var/www/pilotage/modules/inplanning.php on line 214


 
La ligne 214 de inplanning.php c'est

Code :
  1. $liste = $query-> fetchAll() ;


 
Après quelques recherches, j'ai vu qu'il devait s'agir du fichier php.ini, mais le memory_limit est déjà fixé à 128M... (dans les deux php.ini, l'un était dans /etc/php5/cli l'autre dans /etc/php5/apache2)
 
Est-ce que quelqu'un a une idée de la source du problème ?

mood
Publicité
Posté le 27-05-2009 à 09:03:28  profilanswer
 

n°1888348
esox_ch
Posté le 27-05-2009 à 09:27:22  profilanswer
 

Essaie de l'augmenter à 256Mo un coups. Si ca se trouve le reste de ton code prend déjà tellement de place que cette génération est la goute d'eau qui fait déborder le vase


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888374
xphanoo
Posté le 27-05-2009 à 09:56:55  profilanswer
 

On vient de tester (mon collègue a mis 240M) mais ça n'a rien changé... C'est bien embêtant parce que sur internet tout le monde parle de ce php.ini... mais chez nous qu'on mette 1M ou 200M ça change rien ! (pourtant on redémarre le serveur à chaque modif).
Une autre idée ? On ne sait vraiment plus où chercher...

n°1888421
xphanoo
Posté le 27-05-2009 à 10:31:48  profilanswer
 

bon je viens de faire un

Code :
  1. ini_set("memory_limit","128M" );


 
et là maintenant ça marche  :heink:  (après plusieurs tests, mon script marche à partir de 38M)
 
pourtant dans le php.ini il y a bien 128M à memory_limit.... cette valeur y est depuis l'install de Debian... à croire que ça charge ce paramètre ailleurs.. mais où ? (la solution du ini_set marche mais si je pouvais faire ça proprement dans les fichiers de config ça m'arrangerait)


Message édité par xphanoo le 27-05-2009 à 10:32:19
n°1888444
esox_ch
Posté le 27-05-2009 à 11:01:49  profilanswer
 

Tu es sûr que c'est bien ce PHP.ini là qui est considéré ?
Tu as fait un phpinfo(); pour le contrôler?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888522
l0g4n
Expert en tout :o
Posté le 27-05-2009 à 13:27:15  profilanswer
 

Euh, je dis sa comme sa, mais bon, le /etc/php/cli/php.ini c'est pour la ligne de commande...

n°1888592
Profil sup​primé
Posté le 27-05-2009 à 14:19:03  answer
 

Sinon il est peut-être possible d'éviter d'utiliser fetchAll ?

n°1888820
xphanoo
Posté le 28-05-2009 à 09:03:40  profilanswer
 

oui je viens de vérifier, c'est celui-ci: /etc/php5/apache2/php.ini
m'enfin celui-là était déjà fixé à 128M de toute façon...
bon tant que la solution du ini_set fonctionne... on prévoit de faire une réinstall complète du serveur dans un petit moment.
pour le fetchall je pense pas que je puisse m'en passer.. à moins que je m'amuse à renvoyer les résultats en plusieurs bouts, mais bon c'est du bricolage^^


Message édité par xphanoo le 28-05-2009 à 09:04:02

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Fatal error: Allowed memory size of 33554432 bytes exhausted

 

Sujets relatifs
[C] Bus error, arbre et fichiersParse error dans un script de vérification de formulaire
[boost] make_variant_over et mpl::set -> errorFatal error ^_o
[Linker error] undefined reference to `RngStream::RngStream(char conProblème application client/server, envoie et reception de bytes
parse error phpIndentation Error dans boucle While
fatal error C1009: limite du compilateur : macros imbriquées trop prof 
Plus de sujets relatifs à : Fatal error: Allowed memory size of 33554432 bytes exhausted


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR