¿Cuál es la diferencia entre ‘valor local’ y ‘valor maestro’?

4 minutos de lectura

avatar de usuario
ivan

cuando muestro phpinfo(); Veo dos columnas: local value y master value. ¿Cuándo elegirá el servidor web local value y cuando va a elegir master value?

avatar de usuario
marc b

master es el valor compilado en PHP, o establecido a través de un main php.ini directiva. Es decir, el valor que está en efecto cuando se inicia PHP, antes de que ejecute cualquier parte de su código.

local es el valor que está actualmente en vigor en el momento de la llamada phpinfo(). Este valor local es el final resultado de cualquier anulación que haya tenido lugar a través de ini_set() llamadas, php_value directivas en httpd.conf/.htaccess, etc.

Por ejemplo,

php.ini:     foo=bar
httpd.conf:  php_value foo baz
.htaccess:   php_value foo qux
ini_set:     ini_set('foo', 'kittens');
.user.ini    foo=bar   # this file works conditionally see https://stackoverflow.com/a/32193087/1818723

Dado eso, el master el valor es quxy el local el valor es kittens.

  • Según lo que escribió, ¿no sería el valor maestro ‘bar’, ya que está configurado en el archivo php.ini?

    – Aine

    3 de noviembre de 2015 a las 10:36

  • @Aine Sí, el “valor maestro” (según lo informado por phpinfo()) sería de hecho “bar” en este ejemplo. Esto es como se indica en el primer párrafo de la respuesta (¿no estoy seguro de por qué el cambio aparente en el razonamiento en el ejemplo?). Establecer un valor de configuración de PHP en httpd.conf, .htaccess o .user.inietc. no cambia el “valor maestro” informado, solo cambia el “valor local”.

    – Señor White

    14 de febrero de 2017 a las 18:58

  • No está claro en la respuesta que un archivo .user.ini también puede cambiar el valor local. Recomiendo que se edite la respuesta para dejar eso claro.

    –Jeff Baker

    26 de agosto de 2017 a las 19:56

  • @MarcB: Creo que de acuerdo con el primer párrafo de la respuesta, la última línea de la respuesta debería ser “Dado eso, el valor maestro es bar, y el valor local es baz (si se establece en httpd.conf), qux (si se establece en .htaccess), gatitos (si se configura usando ini_set)”. Si he entendido el concepto correctamente y la última declaración que sugerí también es correcta, cambie la última declaración de la respuesta a la que sugerí para aclarar la confusión.

    – Amante de PHP

    13 de marzo de 2018 a las 4:31

  • @MarcB: actualice su respuesta para aclarar la confusión creada sobre el master value qux

    – PHPFan

    30 de agosto de 2018 a las 6:58

avatar de usuario
legionario

“Valor maestro” (de php.ini) podría anularse con “Valor local” en httpd.conf, .htaccess u otra configuración de Apache con el valor_php directiva.

El primero es el valor local y el segundo es el valor global. El valor local anula el valor global y se establece dentro de PHP, HTACCESS, etc., mientras que el valor global se establece dentro de php.ini. Para responder a su pregunta, se utiliza el primer valor.

  • Entonces, si, por ejemplo, el valor local = 0, pero el valor maestro = 1440, el servidor web usará 0 siempre, ¿verdad?

    – Liauchuk Iván

    22 de octubre de 2013 a las 14:36


  • El primero es el valor local, el segundo es el valor global. El valor local anula el valor global y se establece dentro de PHP, HTACCESS, etc. mientras que el valor global se establece dentro de php.ini. Para responder a su pregunta, se utiliza el primer valor; valor local = 0

    – Legionario

    22 de octubre de 2013 a las 14:41


avatar de usuario
Nittn Warshne

El sitio web alojado comprobará los valores locales en .htaccess o .user.ini primero. (Estos archivos están en la carpeta de su sitio web local y también pueden decir archivos de configuración de nivel local).

Los valores locales anulan los valores maestros, por lo que php comprobará primero los valores locales.

El valor maestro se establece en php.ini (archivo principal de configuración de PHP). Ejecute los siguientes comandos en la terminal para encontrar la ruta correcta:

php -i | grep 'Configuration File'

o

php -i | grep php.ini

Entonces, incluso si establecemos valores maestros en php.initambién necesitamos comprobar los valores locales en .htaccess o .user.ini.

Aquí está la explicación cuando .htaccess contra .user.ini funciona https://stackoverflow.com/a/32193087/1818723

  • Que quieres decir con “también puede decir archivos de configuración de nivel local” (parece incomprensible)? Responda editando (cambiando) su respuesta, no aquí en los comentarios (sin que “Editar:”, “Actualizar:” o similar; la respuesta debería aparecer como si hubiera sido escrita hoy).

    -Peter Mortensen

    10 de agosto de 2021 a las 22:43


local es para todo el sitio web o el usuario, mientras que el maestro es una opción de configuración para todo el sistema.

sería más fácil y rápido de entender si se llama “global” en lugar de maestro

desde lo oculto .user.ini y .htaccess los archivos son para todo el sitio, contienen valores locales junto con el ini_set función para establecer opciones dentro de la .php expediente

la PHPRC y PHP_INI_SCAN_DIR los archivos contendrían los valores maestros (globales, de todo el sistema)

PHPRC: /etc/php.ini

PHP_INI_SCAN_DIR: /etc/php/*.ini

¿Ha sido útil esta solución?