为什么 rhel/centos 以这种方式存储 apache conf 文件?

为什么 rhel/centos 以这种方式存储 apache conf 文件?

我已经开始在新工作中管理一批基于 CentOS 的网络服务器,在使用基于 Debian 的 Linux 服务器几年之后,我对 Apache 文件结构已经相当熟悉,如下所示:

    /etc/apache2
        apache2.conf
        conf.d/
        envvars
        mods-available
        mods-enabled
        ports.conf
        sites-available
        sites-enabled

对我来说,这很有意义,我可以使用但不一定使用的模块位于 中mod-available,而用户可以使用的模块位于 中mods-enabled,直接使用也是如此sites。当然,这些主要是符号链接,但我可以理解为什么这样做;刚进入系统时,通过查看相关*enabled目录,我对系统的情况有一个大致的了解。

相比之下,CentOS 的设置如下:

    /etc/httpd
        conf
        conf.d
        logs -> ../../var/log/httpd
        modules -> ../../usr/lib64/httpd/modules
        run -> ../../var/run

我可以理解,通过调用,我可以看到哪些主机已启用apachectl -S,并apachectl -M查看模块,重命名/conf.d/example.confconf.d/example.conf.disabled也允许我相当简单地禁用网站,但我不明白为什么这些首先是不同的,现在,我不确定以这种或那种方式做这件事的好处。

是否有任何页面、博客文章或网站可以帮助解释两者之间的区别,以及可能解释为什么这样设置它们的一些想法?

现在,我盲目地遵循我在标准 CentOS 文件系统中看到的约定,而没有理解为什么,我不禁感觉到它会在我最意想不到的时候困扰我,比如当我偶然跨越 selinux 的权限层或类似的东西时。

答案1

只是思考方式不同。我认为您无需担心,只要您保持目录结构不变,就不会出现任何问题。显然,其他软件包会将其自己的 .conf 文件放入 conf.d 目录中,因此重命名或移动它不是一个好主意。modules-enabled/available 已被消除,但不要指望所有软件包的 conf.d 文件中都有 include 行。有些软件包仍通过 RPM 安装后例程将其添加到 httpd.conf 文件中。

答案2

每个发行版都有特定的偏好,它们遵循在创建时它们认为最好的模型。这是由于缺乏标准和开发人员的偏好造成的...

我认为没有什么可理解的,没有。

相关内容