Проверяет ли PHP автоматически INI-файлы (т.е. INI-файлы в стиле .user.ini (файлы .htaccess в случае PHP, работающего как модуль Apache)) в каждом каталоге?

я использую PHP 7.2.10 на моем ноутбуке, который работает в 64-разрядной операционной системе Windows 10 Home Single Language.

Я установил последнюю версию XAMPP установщик на моем ноутбуке, который установил Apache / 2.4.34 (Win32)

Я наткнулся на следующий текст из Руководство по PHP :

.файлы user.ini

Начиная с PHP 5.3.0, PHP включает поддержку INI-файлов конфигурации на
на основе каталога. Эти файлы обрабатываются только CGI / FastCGI
SAPI. Эта функция устаревает расширение PECL htscanner. Если
вы используете PHP как модуль Apache, используйте .htaccess файлы для того же
эффект.

В дополнение к основному php.ini файл, PHP сканирует файлы INI в каждом
каталог, начиная с каталога запрошенного файла PHP, и
работает до текущего корня документа (как установлено в
$_SERVER['DOCUMENT_ROOT']). В случае, если файл PHP находится за пределами
Корень документа, проверяется только его каталог.

Только настройки INI с режимами PHP_INI_PERDIR а также PHP_INI_USER будут
быть распознанным в INI-файлах в стиле .user.ini.

Две новые директивы INI, user_ini.filename а также user_ini.cache_ttl
контролировать использование пользовательских файлов INI.

user_ini.filename устанавливает имя файла, который ищет PHP в каждом
каталог; если задана пустая строка, PHP вообще не сканирует.
по умолчанию .user.ini.

user_ini.cache_ttl контролирует, как часто пользовательские файлы INI перечитываются.
по умолчанию 300 секунд (5 минут).

Ниже приведены сомнения, которые возникли у меня в голове после прочтения приведенного выше текста:

  1. PHP автоматически сканирует INI files(Т.е. .user.ini-style INI files(.htaccess files в случае PHP работает как модуль Apache)) в каждом каталоге? Я имею в виду, нет необходимости указывать каталоги проекта, который содержит INI files(Т.е. .user.ini-style INI files(.htaccess files в случае PHP работает как модуль Apache))?
  2. Обязательно ли для каждого каталога проекта иметь INI files(Т.е. .user.ini-style INI files(.htaccess files в случае PHP работает как модуль Apache))?
  3. Сделать INI files(Т.е. .user.ini-style INI files(.htaccess files в случае PHP, работающего как модуль Apache)) присутствующие в разных каталогах проекта могут иметь одинаковые директивы с разными значениями или пропустить некоторые директивы или иметь некоторые дополнительные директивы?
  4. Как можно установить директивы PHP в .htaccess файл, который связан с апаш веб сервер?
  5. Что на самом деле означает пункт «PHP сканирует INI-файлы в каждом каталоге»? Означает ли это, что PHP-парсер читает INI-файлы в каждом каталоге?

Пожалуйста, предоставьте ответы на все мои вопросы в пошаговом порядке.

Спасибо.

-1

Решение

  1. Да, но будут затронуты только скрипты, работающие в этом каталоге.
  2. Нет, пользовательские INI-файлы перезаписывают настройки сервера по умолчанию.
  3. Да, они могут, но самый низкий в дереве перезапишет родителя.

4:

#format
php_value setting_name setting_value

#example
php_value  upload_max_filesize  10M
  1. я не знаю

Всю информацию можно найти в руководстве: http://php.net/manual/en/configuration.php

Обратите внимание, что вы не можете установить все конфигурации в файлах user.ini и .htaccess.
Смотрите здесь для получения дополнительной информации: http://php.net/manual/en/configuration.changes.modes.php.

Также обратите внимание, что файлы user.ini могут быть отключены в конфигурации Сервера.

1

Другие решения

1 — Да, если в каталоге есть пользовательский INI PHP и / или файл .htaccess, это будет прочитано и переопределит систему php.ini

2 — Нет, нет необходимости иметь PHP INI или файл htaccess в каждом каталоге, и большинство хостингов не позволяют использовать пользовательские файлы PHP INI и отключают использование php_value из файлов htaccess.

3 — файл PHP INI сканируется из корневого каталога в текущий каталог.
Например, если максимальный размер загрузки по умолчанию составляет 50 МБ, а для корневого каталога PHP INI установлено значение 100 МБ, то значение 100 МБ вступает в силу.
Но если вы находитесь в каталоге «Admin» и в нем есть phi ini-файл с максимальным размером загрузки, равным 20 МБ, то при загрузке с пути / admin и всех дочерних путей вы будете ограничены 20 МБ файлами (если они не имеют своих собственный файл PHP INI).

4 — В файле .htaccess вы можете использовать «php_value», если ваш веб-хостинг позволяет это.
Например

php_value upload_max_filesize 100M

Смотрите здесь для более подробного объяснения:
Переопределение php.ini на сервере

5 — Как я уже говорил в пункте 3. INI-файл PHP сканируется из корневого каталога в текущий каталог. Например, если путь — / admin / advanced, он сначала просматривает системный PHP INI, затем проверяет корневой каталог (/), переопределение и значения, затем идет в каталог администратора, переопределение и значения и, наконец, расширенный каталог.

Стоит отметить, что если вы планируете использовать Shared Hosting, вы, скорее всего, не сможете использовать свои собственные файлы INI PHP и не сможете использовать php_value в своем HTACCESS, так как большинство провайдеров склонны отключать эти функции.

Для получения более подробной информации, пожалуйста, смотрите руководство по PHP:

А для Apache Override:

1

По вопросам рекламы [email protected]