91

当我显示时,phpinfo();我看到两列: local valuemaster value。Web 服务器什么时候选择local value,什么时候选择master value

4

3 回答 3

84

master是编译到 PHP 中的值,或者是通过 mainphp.ini指令设置的值。即,PHP 启动时生效的值,在它执行任何代码之前。

local是您调用时当前有效的值phpinfo()。此本地值是通过调用、httpd.conf/.htaccess 中的指令等进行的任何覆盖的最终结果。ini_set()php_value

例如,

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

鉴于此,master值为qux,而local值为kittens

于 2013-10-22T14:36:09.250 回答
16

"Master Value" (from php.ini) could be overridden with "Local Value" in httpd.conf, .htaccess or other Apache configuration with the php_value directive.

The first is the local value, and the second is the global value. The local value overrides the global value and is set within PHP, HTACCESS, etc., whereas the global value is set within php.ini. To answer your question, the first value is used.

于 2013-10-22T14:35:13.580 回答
5

托管网站将检查.htaccess.user.ini首先检查本地值。(这些文件在您的本地网站文件夹中,也可以说是本地级别的配置文件。)

本地值会覆盖主值,因此php将首先检查本地值。

主值在php.ini(主 PHP 配置文件)中设置。在终端中运行以下命令以找到正确的路径:

php -i | grep 'Configuration File'

或者

php -i | grep php.ini

所以即使我们在 中设置主值php.ini,我们也需要在.htaccessor中检查局部值.user.ini

这是.htaccessvs.user.ini工作时的解释https://stackoverflow.com/a/32193087/1818723

于 2019-04-06T14:28:00.753 回答