8 votes

La mémoire PHP memory_limit est verrouillée à 256MB ?

Je tente de définir memory_limit à 512M, mais il est bloqué à 256M.

ini_set('memory_limit','512M');
ini_get('memory_limit');    //> Retourne : 256M

J'ai un contrôle total sur mon serveur. (c'est un serveur dédié)

Veuillez noter que tout ce qui est inférieur à 512M fonctionne.

ini_set('memory_limit','16M');
ini_get('memory_limit');    //> Retourne : 16M

Solution

J'ai découvert pourquoi. dans php.ini j'avais memory_limit = 256M. Peut-être que cela est considéré comme une limite supérieure

8voto

Ingmar Boddington Points 3210

3 possibilités que je peux penser ou trouver :

Avant PHP 5.2.1, afin d'utiliser cette directive, il fallait l'activer au moment de la compilation en utilisant --enable-memory-limit dans la ligne de configuration.

OU

Le problème détaillé ici : ini_set("memory_limit") en PHP 5.3.3 ne fonctionne pas du tout

OU

ini_set est désactivé

4voto

ssmusoke Points 1990

Vous pouvez également essayer de modifier la memory_limit en utilisant soit un fichier php.ini, soit un fichier .htaccess

php.ini

memory_limit = 512M;

.htaccess

php_value memory_limit 512M

3voto

Paul Points 83

Un peu tard dans la journée, mais l'édition du fichier php.ini n'a pas fonctionné pour php 7.1 en utilisant Mac OS 10.11.6. J'obtenais toujours l'erreur fatale de PHP : Taille de mémoire autorisée de....' qui, selon sa valeur, montrait que le paramétrage de la mémoire n'était pas mis à jour après le démarrage d'apache.

Alors au lieu d'éditer le fichier.

/usr/local/php5/lib/php.ini

J'ai trouvé que changer le fichier suivant a résolu ce problème.

/usr/local/php5/php.d/99-liip-developer.ini

Ce fichier remplaçait en fait les valeurs définies dans le fichier php.ini initial. Encore une fois, en faisant les modifications suivantes à la ligne...

memory_limit = 256M

à

memory_limit = 1024M

Et en redémarrant apache.

sudo /usr/sbin/apachectl restart

2voto

Max-IX Points 11

J'ai remarqué que sur mon Mac (OS X El Capitan) et le nouveau PHP 7.0.0, je ne peux pas changer memory_limit via php.ini

Mais je peux le changer via /etc/apache2/httpd.conf en ajoutant la ligne à la fin:

php_value memory_limit 1024M

et redémarrer le serveur apache:

sudo apachectl restart

Et c'est le bon php.ini, je peux changer d'autres paramètres via celui-ci.

0voto

musse1 Points 381

Vous pourriez vérifier dans votre fichier de configuration php.ini à la directive appelée "disable_functions". Vérifiez si ini_set est désactivé.

Aussi, si safe_mode est activé, une telle option ne peut pas être outrepassée.

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