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.
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.
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).
pour la limite de mémoire illimitée-1
memory_limit
la variable:
ini_set('memory_limit', '-1');
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.
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
entrez ce qui suit dans votre configuration Apache:
php_value memory_limit 2048M
Vous pouvez aussi essayer ceci:
ini_set("max_execution_time", "-1");
ini_set("memory_limit", "-1");
ignore_user_abort(true);
set_time_limit(0);