Я настраиваю apache и по умолчанию у меня есть каталоги /etc/httpd/conf
и /etc/httpd/conf.d
. В чем разница?
Также вы можете увидеть суффикс во многих других каталогах, например /etc/init.d
, /etc/cron.d
, и т.д...
«d» означает каталог, и такой каталог представляет собой набор файлов конфигурации, которые часто являются фрагментами, включенными в основной файл конфигурации. Дело в том, чтобы разделить проблемы конфигурации, чтобы повысить ремонтопригодность.
Когда у вас есть различие, например /etc/httpd/conf
против /etc/httpd/conf.d
, как правило, /etc/httpd/conf
содержит различные типы файлов конфигурации, а .d
Каталог содержит несколько экземпляров одного и того же типа файла конфигурации (например, «модули для загрузки», «сайты для включения» и т. д.), и администратор может добавлять и удалять при необходимости.
Основной движущей силой существования этого соглашения об именах каталогов является упрощение управления пакетами файлов конфигурации. Будь то rpm, deb или что-то еще, гораздо проще (и, вероятно, безопаснее) иметь возможность поместить файл в каталог, чтобы он автоматически включался в конфигурацию программы, вместо того, чтобы пытаться редактировать глобальный файл конфигурации.
Хорошим примером этого является logrotate. В каталоге /etc/logrotate.d - это файлы конфигурации практически для каждого установленного вами приложения, которое ведет журнал / var / журнал. Некоторые из них включены в конфигурацию системного журнала, потому что почти каждая система имеет файл сообщений, wtmp и lastlog. Но если вы установите Apache в своей системе, вам понадобится простой способ автоматического добавления конфигурации для ротации журналов Apache, поэтому он просто удаляет файл конфигурации с именем httpd в /etc/logrotate.d а logrotate настроен на включение файлов в этот каталог. Каждый из них принадлежит пакету для демона, и если вы удалите пакет, он удалит файл. По сути, это способ разбивки конфигурационных файлов на модули. Обратите внимание, что это должно поддерживаться программой, а не чем-то автоматическим, что система делает за вас или что-то в этом роде. Обычно программы, которые это делают, имеют директиву конфигурации под названием включают которые указывают, где этот каталог находится в файловой системе.
logrotate.d может даже быть первым местом, где это соглашение использовалось за пределами init.d и rc.d каталоги для сценариев инициализации.