Page 1 sur 1

Limitations de ini_set()

Posté : 11 oct. 2006, 15:30
par Cyrano
Salut tout le monde,
je me heurte à un petit mystère avec une reconfiguration temporaire d'un paramètre de configuration PHP. Je veux en effet modifier le paramètre memory_limit qui par défaut est à 8M en le montant à 20M.

La question pour gourou de la config : est-ce que par hasard la fonction ini_set() serait retreinte quant à certains paramètres ?

Parce que le problème que j'ai, c'est que ça ne donne strictement rien du tout, aucune modification n'est prise en compte, ni en local (Apache2, PHP5, WinXP Pro SP2), ni à distance (même chose sous Linux) et dans aucun des deux cas la fonciton n'est désactivée. Pire que ça, en local, je n'ai même pas de retour avec ini_get() sur ce paramètre...:-k

J'ai fait en local un ini_get_all() : pas moyen de retrouver non plus memory_limit dans la liste, et pourtant la ligne est bien là dans le php.ini : So what ? Est-ce que je saute tout de suite par la fenêtre ? :afraid:

Posté : 11 oct. 2006, 17:17
par mcorgnet
dans le htaccess, tu dois pouvoir faire un truc du genre :

php_value memory_limit "20M"

comme c'est apache, ça devrait passer mieux qu'en php non ?

Posté : 11 oct. 2006, 17:21
par titerm
pour que ce param soit pris en compte, il faut que l'option de compile "--enable-memory-limit" ait été spécifié lors du build de php.

Sinon, il est tout simplement ignoré, que ce soit dans le php.ini ou ailleurs.

Posté : 11 oct. 2006, 17:27
par Cyrano
Mouais, j'ai vu ça dans la doc aussi, merci pour l'info, je vais voir comment contourner le problème.

Posté : 11 oct. 2006, 17:32
par titerm
juste pour complément... Ca signifie actuellement que tu n'as pas de limit de mémoire...

pas de limite a 8Mo car le param est ignoré...

et tu met à 0 pour ne pas avoir de limite quand le param est pris en compte.
Donc si ton souci, c'est un pb de mémoire... l'activation de ce param ne vas pas t'arranger. Si ton but c'est de disposer des fonctions lié a ce mode comme memory_get_isage() ou memory_get_peak_usage(), la ca le fait.

Posté : 11 oct. 2006, 18:12
par Cyrano
Le problème se pose lors d'un traitement d'image à la volée, et mes recherches ont abouti à cette constatation. En local, pas de problème, ça roule, mais en ligne, j'ai un paramètre à 8M et ça suffit pas apparemment. Donc j'ai envisagé d'utiliser ini_set() pour le modifier à 20 le temps du traitement, mais ça marche pas.

Comme c'est un dédié, je vais voir avec l'admin du serveur pour qu'il modifie le paramètre, je passerai pas trop de temps là-dessus.

Merci pour les réponses.