web-dev-qa-db-fra.com

Différence entre php_admin_value [memory_limit] et php.ini memory_limit

J'ai Nginx + php-fpm + Mysql. Avec les paramètres de mémoire php, j'ai toujours défini ceci dans php.ini comme ceci:

memory_limit = 256M

Maintenant, je suis tombé sur un autre paramètre similaire dans le fichier pool.d/www.conf comme ceci:

;php_admin_value[memory_limit] = 32M

Mes questions:

Bien que la doc dise ce que ça fait, je ne pouvais lire nulle part, quelle est la différence entre le paramètre memory_limit dans php.ini et le php_admin_value[memory_limit] dans www.conf?

Dois-je définir les deux ou le réglage les rend redondants?

Dans quel scénario dois-je spécifier la limite dans php_admin_value[memory_limit] au lieu de l'ajouter à memory_limit dans php.ini?

Quelqu'un peut-il effacer ma confusion s'il vous plaît?

6
Neel

Il n'y a pas de différence. Il existe différentes façons de définir le même paramètre de configuration PHP. C'est utile - par exemple - si vous avez un php.ini générique qui est chargé dans tous les pools PHP-FPM, mais que vous souhaitez remplacer l'un de ceux-ci, par exemple memory_limit

Voir http://php.net/manual/en/configuration.changes.php

3
gue

Une différence entre memory_limit = 256M dans le fichier php.ini et php_admin_value[memory_limit] = 32M dans le pool.d/www.conf est que vous pouvez utiliser ini_set('memory_limit','512M') pour remplacer le paramètre dans le fichier php.ini, mais vous ne pouvez pas le remplacer. valeurs définies avec php_admin_value.

Utilisez php_value[memory_limit] = 32M si vous souhaitez autoriser son remplacement. (php_value vs php_admin_value)

1
Tom