我已经开始在一份新工作中管理一组基于 CentOS 的网络服务器,并且在使用基于 debian 的 linux 服务器几年后,我对 apache 文件结构非常熟悉,如下所示:
/etc/apache2
apache2.conf
conf.d/
envvars
mods-available
mods-enabled
ports.conf
sites-available
sites-enabled
这对我来说是有意义的,我可以使用但不一定要使用的模块是 in mod-available
,而用户中的模块是 in 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.conf
为conf.d/example.conf.disabled
也可以让我相当简单地禁用站点,但我不明白为什么这些首先是不同的,对现在,我不确定以一种或另一种方式这样做的好处。
是否有任何页面、博客文章或网站可以帮助解释两者之间的差异,以及可能围绕它们为何设置这样的一些思考?
现在我盲目地遵循我在标准 CentOS 文件系统中看到的约定而不理解为什么,当我最不期望它时,我不禁感到它会咬我,比如当我在 selinux 的权限层上犯错时,或者相似的东西。
每个发行版都有一定的偏好,他们遵循他们认为在创建时最好的模型。这是由于开发人员缺乏标准和偏好造成的......
我不认为有太多要理解的,不..
只是思维方式不同而已。我不认为你有什么可担心的,只要你保持目录结构不变,什么都不会咬人。显然,其他软件包会将自己的 .conf 文件放入 conf.d 目录中,因此重命名或移动它是个坏主意。modules-enabled/available 被消除,但不要指望所有包的 conf.d 文件中的 include 行。有些人仍然通过 RPM 安装后例程将其添加到 httpd.conf 文件中。