我正在配置apache,默认情况下,我有目录/etc/httpd/conf
和/etc/httpd/conf.d
。有什么不同?
你还可以看到后缀在许多其他目录,如/etc/init.d
,/etc/cron.d
等...
/etc/apt/sources.list.d/
,/etc/profile.d
等等
.d
代表default
。根据此处的信息,它不是,但似乎合乎逻辑。也许我可以这样思考?
我正在配置apache,默认情况下,我有目录/etc/httpd/conf
和/etc/httpd/conf.d
。有什么不同?
你还可以看到后缀在许多其他目录,如/etc/init.d
,/etc/cron.d
等...
/etc/apt/sources.list.d/
,/etc/profile.d
等等
.d
代表default
。根据此处的信息,它不是,但似乎合乎逻辑。也许我可以这样思考?
Answers:
“ d”代表目录,该目录是配置文件的集合,这些文件通常是片段,包含在主配置文件中。关键是将配置问题分开以增加可维护性。
当您有诸如/etc/httpd/conf
vs之类的区别时/etc/httpd/conf.d
,通常情况是/etc/httpd/conf
包含各种不同类型的配置文件,而.d
目录包含相同配置文件类型的多个实例(例如“要加载的模块”,“要启用的站点”等) ),管理员可以根据需要添加和删除。
存在此目录命名约定的主要推动力是简化配置文件的软件包管理。无论是rpm,deb还是其他格式,将文件拖放到目录中都更加容易(并且可能更安全),以便将文件自动包含在程序的配置中,而不必尝试编辑全局配置文件。
logrotate是一个很好的例子。在/etc/logrotate.d目录中,实际上是已安装的每个应用程序的配置文件,这些文件将日志保存在/ var / log中。由于几乎每个系统都有消息,wtmp和lastlog文件,因此其中一些被捆绑到syslog配置中。但是,如果您在系统上安装Apache,则需要一种简单的方法来自动添加用于轮换Apache日志的配置,因此它只是在/etc/logrotate.d中删除了一个名为httpd的配置文件。并且logrotate配置为包括该目录中的文件。每个守护程序都由软件包所拥有,如果删除该软件包,它将删除该文件。它基本上是一种模块化配置文件的方式。请注意,这需要程序的支持,而不是系统为您执行的自动操作。通常,执行此操作的程序具有一个名为include的config指令,该指令指定该目录在文件系统上的位置。
在惯用脚本的init.d和rc.d目录之外,logrotate.d甚至可能是第一个使用此约定的地方。