Question

Je ne parviens pas à obtenir plus de mémoire PHP.

Voici le message d'erreur:

Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 82 bytes) in ...

Pourtant:

J'ai défini memory_limit dans le fichier php.ini sur 32 Mo:

memory_limit = 32M;

J'ai également essayé de le remplacer manuellement dans le script actuel:

ini_set('memory_limit', '32M');

Et - voici où je suis perdu - j'ai confirmé via phpinfo () que ce fichier php.ini est le fichier ini utilisé, et que memory_limit semble être défini correctement. La ligne sur memory_limit donne ceci:

memory_limit    32M 32M

Il semble donc que tout est configuré correctement, mais je ne reçois que 20971520 octets (~ 20M).

Où devrais-je chercher pour savoir où cette limitation est imposée?

MODIFIER: j'utilise php sous nginx / fastcgi, sous Ubuntu 9.04 dans un VPS. Les processus php-cgi semblent être un peu gourmands en ressources (RES = 25m, VIRT = 187m), mais j’ai 10 m de mémoire physique libre et 500 m d’espace de permutation.

Était-ce utile?

La solution 2

Je viens de fouiller dans le code que j'utilisais et quelqu'un l'avait codé en dur dans un fichier de configuration:

ini_set('memory_limit', '20M');

Ce qui dominait tout ce que je faisais. Ouf.

Autres conseils

Mon premier instinct est de deviner que PHP lit un php.ini différent.

Dans Debian (et très probablement Ubuntu), chaque version de PHP (cli, cgi et apache) possède sa propre copie de php.ini.

Vous pouvez essayer de le définir dans le fichier .htaccess, c’est ce que je devais faire pour que le site fonctionne sur un serveur.

voici les paramètres que j'ai utilisés:

php_value  upload_max_filesize  50M
php_value  post_max_size  60M
php_value  memory_limit  128M
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top