Comment augmenter la limite de mémoire pour PHP au-dessus de 2 Go?

j'ai un problème d'augmentation de la limite de mémoire pour PHP comme module Apache.

si je mets la directive suivante dans la configuration D'Apache, ça marche bien:

php_value memory_limit 1.99G

mais plus de 2 Go ne fonctionnent pas, c'est restaurer cette valeur à 128MO.

Quel est le problème ici? J'ai besoin de plus de mémoire pour certaines tâches liées au PDF.

le serveur est Debian 2.6.32-5-amd64 #1 SMP, PHP 5.3.3-7+squeeze13 avec 12 Go de RAM physique.

42
demandé sur mikikg 2012-08-09 18:01:44

7 réponses

avez-vous essayé D'utiliser la valeur dans MB ?

php_value memory_limit 2048M

essayez Aussi édition de cette valeurphp.ini pas Apache.

34
répondu Claudiu Claw 2016-06-26 04:49:07

je suggérerais que vous regardiez le problème sous un mauvais angle. La question devrait être " qu'est-ce que je fais qui a besoin de 2g de mémoire dans un processus apache avec Php via le module apache et cet ensemble d'outils est-il le mieux adapté pour le travail?'

Oui tu peux attacher une fusée sur une ford pinto, mais ce n'est probablement pas la bonne solution.

quoi qu'il en soit, je fournirai la fusée si vous en avez vraiment besoin... vous pouvez ajouter en haut du script.

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

ensemble pour juste le script. Vous devrez toujours dire à apache d'autoriser cela pour un script php (je pense).

30
répondu Ray 2012-08-09 16:44:01

pour la limite de mémoire illimitée-1memory_limit la variable:

ini_set('memory_limit', '-1');
13
répondu Indrajeet Singh 2016-09-06 21:40:19

vous devriez avoir un OS 64 bits sur le matériel qui supporte un OS 64 bits, une version Apache 64 bits et la même chose pour PHP. Mais cela ne garantit pas que les fonctions qui fonctionnent avec PDF peuvent utiliser de telles grandes tailles de mémoire. Vous feriez mieux de ne pas charger l'ensemble du fichier en mémoire, de ne pas le diviser en morceaux ou d'utiliser des fonctions de fichier pour le rechercher sans le charger en mémoire vive.

3
répondu Timur 2012-08-09 14:10:26

pour les autres qui rencontrent le même problème, Voici la description du bogue dans php + patch https://bugs.php.net/bug.php?id=44522

2
répondu Wiggler Jtag 2013-03-05 09:15:53

entrez ce qui suit dans votre configuration Apache:

php_value memory_limit 2048M
1
répondu Florent 2012-08-09 14:04:40

Vous pouvez aussi essayer ceci:

ini_set("max_execution_time", "-1");
ini_set("memory_limit", "-1");
ignore_user_abort(true);
set_time_limit(0);
0
répondu kishan Radadiya 2018-09-24 15:30:38