Яка різниця між місцевим значенням та основним значенням


78

Коли я відображаю, phpinfo();я бачу два стовпці: local valueі master value. Коли веб-сервер вибере local valueі коли він вибере master value?

Відповіді:


73

master- це або значення, скомпільоване в PHP, або встановлене за допомогою головної php.iniдирективи. Наприклад, значення, яке діє, коли PHP спрацьовує, перш ніж виконувати будь-який ваш код.

local- це значення, яке на даний момент діє на момент дзвінка phpinfo(). Це місцеве значення є результатом END будь-яких перевизначень, які відбулися за допомогою ini_set()викликів, php_valueдиректив у httpd.conf / .htaccess тощо ...

напр

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

1
@Aine Так, "головне значення" (як повідомляє phpinfo()) справді було б "бар" у цьому прикладі. Це, як зазначено в першому абзаці відповіді (не впевнений, чому очевидна зміна міркувань у прикладі?). Встановлення значення конфігурації PHP у httpd.conf, .htaccessабо .user.iniтощо не змінює повідомлене "головне значення", змінюється лише "локальне значення".
MrWhite

2
У відповіді не ясно, що файл .user.ini також може змінити місцеве значення. Я рекомендую редагувати відповідь, щоб це було зрозуміло.
Джефф Бейкер,

2
@MarcB: Я думаю, згідно з першим абзацом відповіді останнім рядком відповіді має бути "Враховуючи це, головним значенням є бар, а місцевим значенням є baz (якщо встановлено в httpd.conf), qux (якщо встановлено в .htaccess), кошенята (якщо встановлено за допомогою ini_set) ". Якщо я правильно зрозумів концепцію, і останнє твердження, яке я запропонував, також є правильним, змініть останнє твердження відповіді на те, яке я запропонував, щоб усунути плутанину.
PHPL над

2
@MarcB: Будь ласка, оновіть свою відповідь, щоб очистити створену плутанинуmaster value qux
PHPFan

14

"Головне значення" (з php.ini) може бути замінено на "Місцеве значення" в httpd.conf , .htaccess або іншій конфігурації Apache за допомогою директиви php_value .

Перше - це місцеве значення, друге - глобальне значення. Місцеве значення замінює глобальне значення і встановлюється в межах PHP, HTACCESS тощо, тоді як глобальне значення встановлюється в межах php.ini. Для відповіді на ваше запитання використовується перше значення.


6
Отже, якщо, наприклад, локальне значення = 0, але головне значення = 1440 веб-сервер завжди використовуватиме 0, так?
Ляучук Іван

7
Перше - це місцеве значення, друге - глобальне значення. Місцеве значення замінює глобальне значення і встановлюється в межах PHP, HTACCESS тощо, тоді як глобальне значення встановлюється в межах php.ini. Для відповіді на ваше запитання використовується перше значення; місцеве значення = 0
Легіонер

4

розміщений веб-сайт перевірить місцеві цінності в. htaccessабо .user.iniспочатку (ці файли знаходяться у папці локального веб-сайту, а також можуть містити файли конфігурації місцевого рівня).

Місцеві значення замінюють основні значення, тому php спочатку перевірить локальні значення.

головне значення, встановлене у php.ini(основний файл конфігурації php), виконує наступні команди в терміналі, щоб знайти правильний шлях

php -i | grep 'Configuration File'

або

php -i | grep php.ini

так що навіть якщо ми встановлюємо основні значення php.ini, нам також потрібно перевірити локальні значення .htaccessабо.user.ini

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.