“本地价值”和“主价值”有啥区别?
Posted
技术标签:
【中文标题】“本地价值”和“主价值”有啥区别?【英文标题】:What is the difference between 'local value' and 'master value'?“本地价值”和“主价值”有什么区别? 【发布时间】:2013-10-31 11:50:02 【问题描述】:当我显示 phpinfo();
时,我看到两列:local value
和 master value
。 Web 服务器什么时候选择local value
,什么时候选择master value
?
【问题讨论】:
【参考方案1】:master
是编译到 PHP 中的值,或者通过主要的 php.ini
指令设置。即 PHP 启动时生效的值,在它执行任何代码之前。
local
是在您调用phpinfo()
时当前有效的值。此本地值是通过ini_set()
调用、httpd.conf/.htaccess 中的php_value
指令等发生的任何覆盖的end结果。
例如,
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://***.com/a/32193087/1818723
鉴于此,master
的值为qux
,local
的值为kittens
。
【讨论】:
根据你写的,主值不会是'bar',因为它是在php.ini文件中设置的吗? @Aine 是的,“主值”(由phpinfo()
报告)在此示例中确实是“bar”。正如答案的第一段所述(不确定为什么示例中的推理发生明显变化?)。在httpd.conf
、.htaccess
或.user.ini
等设置PHP 配置值不会改变报告的“主值”,只会改变“本地值”。
答案中不清楚 .user.ini 文件也可以更改本地值。我建议编辑答案以明确这一点。
@MarcB :我认为根据答案的第一段,答案的最后一行应该是“鉴于此,主值为bar,本地值为baz(如果在httpd中设置.conf)、qux(如果在 .htaccess 中设置)、kittens(如果使用 ini_set 设置)"。如果我已经正确理解了这个概念并且我建议的最后一个陈述也是正确的,请将答案的最后一个陈述更改为我建议的那个以消除混乱。
@MarcB :请更新您的答案以消除对master value
qux
造成的混淆【参考方案2】:
“主值”(来自 php.ini)可以在 httpd.conf、.htaccess 或php_value 指令的其他 Apache 配置。
第一个是局部值,第二个是全局值。本地值覆盖全局值并在 PHP、HTACCESS 等中设置,而全局值在 php.ini 中设置。为了回答您的问题,使用第一个值。
【讨论】:
因此,例如,如果本地值 = 0,但主值 = 1440,网络服务器将始终使用 0,对吗? 第一个是局部值,第二个是全局值。本地值覆盖全局值并在 PHP、HTACCESS 等中设置,而全局值在 php.ini 中设置。为了回答您的问题,使用第一个值;本地值 = 0【参考方案3】:托管网站将首先检查.htaccess
或.user.ini
中的本地值。 (这些文件在您的本地网站文件夹中,也可以说是本地级别的配置文件。)
本地值覆盖主值,因此php
将首先检查本地值。
主值在php.ini
(PHP 主配置文件)中设置。
在终端中运行以下命令找到正确的路径:
php -i | grep 'Configuration File'
或
php -i | grep php.ini
所以即使我们在php.ini
中设置主值,我们也需要检查.htaccess
或.user.ini
中的本地值。
这是.htaccess
与.user.ini
工作https://***.com/a/32193087/1818723 时的解释
【讨论】:
你说的“也可以说本地级别的配置文件”是什么意思(好像看不懂)?请通过editing (changing) your answer 回复,而不是在 cmets 中(without "Edit:"、"Update:" 或类似的 - 答案应该看起来像是今天写的)。以上是关于“本地价值”和“主价值”有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章