2009-07-07 4 views
1

Включает ли параметр конфигурации with-config-file-scan-dir при компиляции PHP приводит к проблемам с производительностью?php.ini настройка сканирования файла конфигурации

В частности, это указывает бинарному файлу PHP выполнять сканирование файловой системы каждый раз, когда модуль PHP загружается для ответа на запрос?

Я предполагаю, что это так, и что наличие нескольких файлов ini приводит к чуть большему количеству доступа к диску при каждом запросе. Я полагаю, это можно было бы смягчить, поставив все эти отдельные директивы в один файл php.ini.

Может кто-нибудь подтвердить или опровергнуть это?

ответ

1

Нет, если я правильно понял, вы предоставите ему каталог, который при загрузке PHP-конфигурации (при запуске apache) PHP будет читать каждый файл в каталоге в виде файла конфигурации.

Некоторая информация here и более here (лучше ссылку)

+0

Спасибо, что имеет смысл. Я думал, что загрузил эти файлы conf по каждому HTTP-запросу. Не понял, что он загружал их при запуске Apache. –

1

это говорит ли в PHP двоичный файл, чтобы сделать файловую систему сканирования каждый раз, когда модуль PHP загружается в ответ на запрос?

Нет. Когда вы компилируете --with-config-file-scan-dir=/path/to/dir, все, что вы делаете, говорит, что PHP объединяет все файлы в этом каталоге в свою конфигурацию. Это метод, который часто используется в конфигурации системы, где системы управления пакетами должны иметь возможность добавлять/удалять конфигурацию конкретного пакета из приложения без потенциального уничтожения модифицированного конфигурационного файла конечного пользователя. Примером здесь может служить система на основе Debian, когда вы apt-get install php-pgsql, она создаст /etc/php/conf.d/pgsql.ini, которая будет содержать строку extension=pgsql.so, а также любые параметры, относящиеся к конкретному модулю.

Включает ли параметр конфигурации с-config-file-scan-dir при компиляции PHP приводит к проблемам с производительностью?

Не совсем. На практике это просто конкатенация всех файлов .ini в этом конкретном каталоге.

Я могу сказать вам, что Debian, CentOS и Zend Server используют эту опцию по умолчанию.

Кроме того, прямо с моей головы, файлы nix RC, Apache2, Courier, Emacs и Cron используют (или могут использовать) аналогичные подходы к загрузке конфигураций.

2

Bryan,

CLI/(Fast) версия CGI загружает INI-файлы каждый раз, когда они разожгли; однако модуль apache загружает их один раз в память при запуске сервера. Вы можете протестировать это поведение, изменив значение в любом из .ini-файлов и запустив двоичный файл CLI. Обратите внимание, что вам необходимо перезагрузить сервер, прежде чем вы сможете увидеть изменения в версии серверного модуля.

Смежные вопросы