PHP: paramètres limites de mémoire> 1024M ne fonctionne pas
pour des raisons de bads, j'ai besoin de définir memory_limits supérieur à 1G pour un répertoire, mais sur mon PHP 5.2.17 sur Lenny server quand je mets par exemple 2048M je n'obtiens que le php.valeur par défaut de ini (256M).
PHP fonctionne comme un module apache, phpinfo nous donne (pour le répertoire)
memory_limit 1024M 256M
suhosin.memory_limit 0 0
y a-t-il une limitation due au module apache, ou à la conf PHP? Je sais que le serveur n'a que 4g de RAM, c'est juste un script spécial.
5 réponses
comment essayez-vous de définir la limite de mémoire? phpinfo () affiche la limite de mémoire réservée PHP actuelle, c'est ce qui est disponible à cause de php.ini ayant ce paramètre comme limite de mémoire
écrire ceci à Apache .htaccess dans votre répertoire script peut fonctionner, si votre serveur prend en charge la configuration des commandes PHP .htaccess:
php_value memory_limit 2048M
Puisqu'il est possible que .les commandes htaccess pour définir les valeurs PHP sont désactivées. Alors vous pouvez aussi essayer cela depuis PHP code:
ini_set('memory_limit', '2048M');
Si cela ne fonctionne pas et .htaccess ne fonctionne pas non plus, alors vous devez contacter les administrateurs du serveur.
ini_set("memory_limit",-1);
ceci devrait normalement supprimer les limites
j'ai eu ce même problème où j'avais besoin de mon script PHP pour utiliser 4 GBs de RAM. La raison n'a pas d'importance. Le but était de fixer une limite de 4 Go en PHP.
L'idée initiale était d'utiliser ini_set('memory_limit', '4096M');
mais j'ai découvert que ça ne marchait pas. Je n'ai aucune idée de comment ou pourquoi, pour être honnête, mais ce n'était pas important pour moi à l'époque. Je suis sur un système avec 32 GBs de RAM, ça doit être possible.
j'ai trouvé que fixer une limite de 1 Mo de moins fonctionnait, c'est une solution qui a fonctionné pour je.
ini_set('memory_limit', '4095M'); // 4 GBs minus 1 MB
Modifier Nov 16: en fait, je n'ai jamais vraiment joué avec avant mais j'ai remarqué sur mon système que cette valeur semble supprimer complètement toutes les limites de mémoire pour moi. Je peux utiliser autant de RAM que mon système peut fournir.
Comme décrit ici : http://www.hardened-php.net/suhosin/configuration.html#suhosin.memory_limit
Suhosin ne vous laissera pas faire!--5-->définissez une valeur supérieure à celle que le script a commencé avec.
Si vous définissez suhosin.memory_limit 2048M ensuite vous pourrez augmenter votre utilisation de la mémoire.
j'ai eu un problème avec ces erreurs aussi , avec l'importation de fichier XLS à la base de données.
Solution ini_set('memory_limit', '2048M');
appliquer cette commande directement dans le fichier où est le problème.
Par exemple: Phpmyadmin\libraries\PHPExcel\PHPExcel\Worksheet.php