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.

45
demandé sur Cédric Girard 2012-02-14 15:41:07

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.

86
répondu kingmaple 2016-07-13 18:13:17
ini_set("memory_limit",-1);

ceci devrait normalement supprimer les limites

23
répondu pollux1er 2016-03-15 00:31:48

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.

16
répondu nxasdf 2016-11-23 01:51:00

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.

6
répondu Vincent Touzet 2013-05-31 10:27:24

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

-2
répondu Andrej BlackFlash 2015-04-14 01:26:42