如何配置 Apache(站点可用 vs httpd.conf)

Eda*_*aor 31 ubuntu apache-2.2

我一直在尝试遵循一些基本教程来解释如何启动和运行 Apache(在 ubuntu 上,在亚马逊上运行)。我大部分时间都是空白的,因为所有的教程都告诉我配置 httpd.conf(添加 DocumentRoot 等)。

我现在偶然发现了一个教程,它告诉我将站点配置添加到站点可用目录(在 /etc/apache 下),然后从启用站点的符号链接到它。以这种方式配置似乎有效。

但现在我很困惑 - 我应该如何配置 Apache?大多数教程似乎仍然说我应该使用 httpd.conf。我应该使用哪一种?有什么不同?为什么所有的教程都是“错误的”(如果是)?

Sam*_*cke 39

sites-available方法通常被认为是“Debian 方式”:

  • “主要”配置 /etc/apache2/apache2.conf
  • “用户”配置 /etc/apache2/httpd.conf
  • /etc/apache2/sites-available文件中的虚拟主机(通常每个文件一个)
    • 您可能想给它们编号,例如 00-domain.com、01-otherdomain.com
  • 端口(Listen指令)在/etc/apache2/ports.conf
  • 模组在 /etc/apache2/mods-available

您可以使用符号链接或a2一系列命令来操作这些:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>
Run Code Online (Sandbox Code Playgroud)

根据个人喜好,你可以用重新启动Apache apachectl/etc/init.d/apache2 (start|stop|reload|restart)service apache2 (start|stop|reload|restart)

例如,您将使用httpd.conf而不是 vhost 条目的示例用于全局重定向或重写规则。其他花絮——通常,您应该不去管它apache2.conf,并确保为sites-available目录中的虚拟主机设置一致的命名方案。

  • 可用站点提供了良好的配置模块化。它使您能够轻松地专注于单个站点的配置。它还使比较服务器上的站点或在服务器之间移动或复制站点变得更加容易。 (2认同)

Red*_*ick 9

配置文件的位置和组织是可配置的,并且可以在主要版本或发行版之间更改。

Apache Wiki 有一个关于配置文件的名称和位置的方便指南

因为配置文件可以包含include指令,所以配置的部分可以分成更小的文件。由于标准的 Apache 配置文件包含许多注释和许多标准项,因此将您最有可能更改的部分分开是有意义的。

主配置文件的名称可以在编译时更改,在最近的版本中它已更改httpd.confapache2.conf

多年来,包含的配置文件的组织也发生了一些变化。

例如,我在基于 Ubuntu 的系统上安装了 Apache2,使用apt-get install apache2- 这是包含的文件

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

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default
Run Code Online (Sandbox Code Playgroud)

因此,您可能最感兴趣的少数配置设置现在位于/etc/apache2/sites-available/default.

我可以看到这与我建议您先阅读Apache的 Ubuntu文档一致。如果您有旧版本 Apache(或其他发行版)的其他文档,您可以调整该信息以适应 Ubuntu 中事物的组织方式。