我现在正在使用Ubuntu服务器(用于本地开发),并注意到像apache这样的一些Ubuntu软件包有他们的configuration文件…呃…分散。
虽然官方的Apache文档主要是指所有的httpd.conf文件,但是Ubuntu的Apache软件包巧妙地将这个文件分成了..um …> 20个文件。
例如,不要在httpd.conf中添加虚拟主机,而是在子目录中创build文件,然后将其别名别名… m'ok。 我想很多人喜欢这个…但是我认为这太过于复杂了。 如果我想我的configuration分开 – 我可以自己做。
你认为哪些Linux服务器发行版中的发行版最less由发行版创build者定制?
留下这个布局! 它带来了conf.d文件夹的优点。 该文件夹中的文件不会被覆盖,不像httpd.conf ! 然后,Apache将所有代码片段组装成一个httpd.conf。 您不必关心指令的顺序,因为它是一个类似于XML的configuration文件。
将所有指令放在一个文件中确实不切实际。 有时我甚至会将这些configuration分割成更小的,部分客户可编辑的文件。
看看/etc/apache2/conf.d/ 。 如果你正在寻找一些指令,不知道要查找哪个文件,我们grep: grep -i -r "<IfModule mod_foo*" /etc/apache2/conf.d 。
从不编辑 httpd.conf本身是一个好主意。 即使您想覆盖现有的声明,将它们复制到* .conf文件到conf.d目录,并在复制的文件中修改后重新启动Apache。
对于需要高度自定义function的服务器(并给予足够的时间,他们都这样做),我宁愿推出自己的。 我知道它并不完全回答你的问题,但是这是一个你应该考虑的选项。 经过几年的试图“顺其自然的stream程”并对官方软件包所给予的任何东西进行修改之后,事实certificate,他们正在像我一样攻击它,但是不同的是,更重要的是,对我来说是不直观的。 所以我最终创build了自己的脚本来构build,布局,并使用mods,php,mysql等来安装我自己的apache。后来我再往前走了一步,使得我自己的软件包从这些脚本中轻松分发。 从长远来看,最终维护起来要容易得多,因为虽然这是一个奇怪的设置,但是这是我奇怪的设置,我可以比在几十个conf.d / *中徘徊更快地修复/更新东西。在文件系统上。 起初有点费时,但从长远来看效果很好。
这种变化是我们不使用任何Debian或Ubuntu发行版的主要原因。 你最终使用Apache的Ubuntu风格,而不是Apache本身。
我不知道哪个发行版靠近上游来源,我熟悉RedHat和CentOS,而且这两个发行版也做了一些改动,虽然不太显着。
您可以尝试卸载发行版提供的软件包,然后将源代码所需的软件编译到/opt及其子目录中。 然后你会根据你的喜好pipe理configuration(我会推荐Puppet,但如果你只有一台服务器,可能会过度)。
通常情况下,发行版将configuration文件分解为与发行版中的某种方法或哲学相匹配。 而不是apache有一个configuration布局和exim有另一个,他们都将相对相似,所以如果你对发行家庭,你会知道在哪里寻找configuration任何新的软件包随之而来。
我build议你select一种你喜欢的方法,然后学习它,并学习按照它的规则玩。 这将使你的生活更加容易。
apache文档或者任何关于这个问题的文档通常都是generics的,并且讨论了最简单的情况,但是在现实世界中事情并不那么简单。 configuration分成几个文件,使得典型的现实世界的情景从长远来看更容易pipe理。