本地值和主值有什么区别


Answers:


72

master是编译为PHP的值,还是通过主php.ini指令设置的值。例如,在PHP执行任何代码之前启动时有效的值。

local是您调用时当前有效的值phpinfo()。此局部值是通过ini_set()调用,php_valuehttpd.conf / .htaccess中的指令等进行的任何覆盖的END结果。

例如

php.ini:     foo=bar
httpd.conf:  php_value foo baz
.htaccess:   php_value foo qux
ini_set:     ini_set('foo', 'kittens');

鉴于此,master值是qux,并且local值是kittens


5
根据您所写的内容,主值不是'bar'吗,因为它是在php.ini文件中设置的?
Aine 2015年

1
@Aine是的,phpinfo()在此示例中,“主值”(如所报告)确实为“ bar”。如答案的第一段所述(不知道为什么示例中的推理有明显变化?)。在httpd.conf.htaccess.user.ini等中设置PHP配置值不会更改报告的“主值”,仅会更改“本地值”。
MrWhite

2
答案中不清楚.user.ini文件是否也可以更改本地值。我建议对答案进行编辑以使其更清楚。
杰夫·贝克

2
@MarcB:我认为根据答案的第一段,答案的最后一行应为“鉴于此,主值是bar,本地值是baz(如果在httpd.conf中设置),qux(如果设置了) (在.htaccess中),小猫(如果使用ini_set设置)”。如果我正确理解了该概念,并且我建议的最后一个陈述也正确,请将答案的最后一个陈述更改为我建议的答案,以消除混乱。
PHPLover

2
@MarcB:请更新您的答案以消除在master value qux
PHPFan

14

php_value指令中的httpd.conf.htaccess或其他Apache配置中,“ Master Value”(来自php.ini)可以被“ Local Value”覆盖。

第一个是局部值,第二个是全局值。局部值将覆盖全局值,并在PHP,HTACCCESS等中设置,而全局值在php.ini中设置。为了回答您的问题,使用第一个值。


6
因此,例如,如果本地值= 0,但主值= 1440,则Web服务器将始终使用0,对吗?
Liauchuk Ivan 2013年

7
第一个是局部值,第二个是全局值。局部值将覆盖全局值,并在PHP,HTACCCESS等中设置,而全局值在php.ini中设置。为了回答您的问题,将使用第一个值。当地价值= 0
Legionar

4

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

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

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

php -i | grep 'Configuration File'

要么

php -i | grep php.ini

因此,即使我们在中设置了主值php.ini,我们也需要检查本地值.htaccess.user.ini

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.