为什么不同的 Linux 发行版上的 Apache 有不同的目录结构?

为什么不同的 Linux 发行版上的 Apache 有不同的目录结构?

虽然非常相似,但是在不同的 Linux 发行版(例如 Ubuntu、CentOS/RHEL、Debian)上安装其包时,我经常发现 httpd 目录中文件位置的关键差异......有些有一个单独的 conf 文件目录,有些将它们直接包含在 httpd 根目录中,有些具有已创建的启用/禁用站点的 vhost 文件夹,等等。

为什么会有这么多的差异,这些差异有没有什么参考呢?

答案1

每个发行版都倾向于生成遵循发行版约定的软件包(因此 Debian 将配置文件放在 /etc/apache2 中,将默认 Web 根目录放在 /var/www 中,将库/模块放在 /usr/lib/apache2 中,等等)。这有助于确保特定发行版的用户能够在他们期望的位置找到内容(例如,如果是 Debian 系统,我知道会在 /etc/ 中查找配置文件)。

没有中央参考:对于每个发行版,您都需要查看该发行版的文档以了解其尝试放置内容的位置。

答案2

Linux 文件系统的标准文档确实存在,http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard。随着发行版的演变,他们最终创建了自己的标准风格。

事情变得更复杂了,如果你看看配置布局查看 Apache httpd 源代码附带的文件,您会看到它甚至有各种可以使用的布局。

答案3

只要 apache httpd 实例有一个主 conf 文件,那么 appache 的目录结构就无关紧要了。apache 运行所需的所有目录结构都在 conf 文件或所包含的 conf 文件之一中定义。您不必遵循发行版希望您使用的目录结构。您可以通过将目录结构更改为您想要的方式覆盖它,方法是清除 conf 文件中定义的内容在哪里并确保它在那里可用。不要以为如果被告知要重组 apache 会自动为您移动内容。它不会。您的工作是告诉每个内容在哪里,并且您必须将内容移动到您想要的适当位置。您甚至可以将主 conf 文件位置和其中的条目更改为您想要的任何位置。只是 httpd 进程应该知道它,以便它可以正确找到并加载。要做到这一点,请使用 apache 二进制文件的 -f 选项并提供主 conf 文件的位置。我认为没有比这个软件更具可定制性的了。

相关内容