Linux 服务器发行版中默认服务器包定制最少?

Linux 服务器发行版中默认服务器包定制最少?

我现在正在使用 Ubuntu 服务器(用于本地开发),并且注意到一些 Ubuntu 软件包(例如 apache)的配置文件......嗯......很分散。

虽然官方 Apache 文档主要参考 httpd.conf 来了解所有内容,但 Ubuntu 的 Apache 软件包巧妙地将这个文件分成了...嗯...> 20 个文件。

例如,您不需要在 httpd.conf 中添加虚拟主机,而是需要在子目录中创建文件,然后将其别名为另一个目录...好吧。我想很多人都喜欢这样...但我...嗯...认为这太复杂了。如果我想将配置分开 - 我可以自己做。

您认为哪个 Linux 服务器发行版的软件包由发行版创建者定制的最少?

答案1

继续使用这种布局!它带来了文件夹的优势conf.d。与 不同,文件夹中的文件永远不会被覆盖httpd.conf!然后,Apache 将所有代码片段组装到 httpd.conf 中。您不必关心指令的顺序,因为它是一个类似 XML 的配置文件。

将所有指令放在一个文件中确实不切实际。有时我甚至将这些配置拆分成更小的、部分客户可编辑的文件。

看看/etc/apache2/conf.d/。如果您正在寻找一些指令但不知道在哪个文件中查找,请使用 grep grep -i -r "<IfModule mod_foo*" /etc/apache2/conf.d:。

基本上是个好主意从不编辑httpd.conf 本身。即使您想覆盖现有的声明,也请将它们复制到 conf.d 目录中的 *.conf 文件,然后在复制的文件中完成修改后重新启动 apache。

答案2

对于需要高度定制功能的服务器(如果有足够的时间,它们都需要),我更喜欢自己动手。我知道这并不能完全回答你的问题,但这是一个你应该考虑的选择。经过几年的尝试“顺其自然”并在官方软件包给我的任何东西之上进行修改,结果发现他们和我一样在破解它,但方式不同,更重要的是,对我来说是反直觉的。所以我最终构建了自己的脚本来构建、布局和安装我自己的 apache,其中包含 mods、php、mysql 等。后来我又更进一步,用这些脚本制作了自己的软件包,以便于分发。从长远来看,它最终更容易维护,因为虽然这是一个奇怪的设置,但它是我的奇怪设置,我可以比在整个文件系统中搜索数十个 conf.d/*.conf 更快地修复/更新东西。一开始有点耗时,但从长远来看效果很好。

答案3

这类变化是我们不使用任何 Debian 或 Ubuntu 发行版的主要原因。您最终会使用 Ubuntu 版本的 Apache,而不是 Apache 本身。

我不知道哪个其他发行版更接近上游源代码,我熟悉 RedHat 和 CentOS,这两个发行版也做出了改变,尽管改变不那么剧烈。

您可以尝试卸载发行版提供的有问题的软件包,然后将所需的软件从源代码编译到/opt其子目录中。然后,您可以根据自己的喜好管理配置(我建议使用 Puppet,但如果您只有一台服务器,这可能有点过头了)。

答案4

通常,发行版会分解配置文件以匹配发行版中的某种方法或理念。Apache 不会有一个配置布局,而 Exim 不会有另一个,它们都相对相似,因此,如果您熟悉发行版,您将知道在哪里查找任何新软件包的配置。

我建议你选择一个你通常喜欢的方法的发行版,然后好好学习它并学会按照它的规则行事。最终它将使你的生活变得更轻松。

Apache 文档或任何文档通常都是通用的,讨论的是最简单的情况,但在现实世界中,事情很少如此简单。从长远来看,将配置分为几个文件可以使典型的现实世界情况更易于管理。

相关内容