如何配置 Apache(sites-available 与 httpd.conf)

如何配置 Apache(sites-available 与 httpd.conf)

我一直在尝试遵循一些基本教程,这些教程解释了如何启动和运行 Apache(在 ubuntu 上,在 Amazon 上运行)。我几乎一无所获,因为所有教程都告诉我要配置 httpd.conf(添加 DocumentRoot 等)。

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

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

答案1

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>

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

例如,您可以使用httpd.confvhost 条目来代替全局重定向或重写规则。其他注意事项 — 通常,您应该保持apache2.conf原样,并确保为目录中的 vhost 设置一致的命名方案sites-available

答案2

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

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

因此,您最感兴趣的几个配置设置现在就在 中/etc/apache2/sites-available/default

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

答案3

Linux 中的 Apache 可以通过两种类型安装。一种是通过 apt-get,另一种是下载 tar 文件并解压....因此,在 apt-get 过程中,站点从 /etc/apache2/sites-enabled 文件夹提供服务,因为每个为外界服务的站点都通过 .conf 文件在这些文件夹中配置,例如,000-default.conf 是启用的默认站点,以显示 apache 的工作。

因此,通过在 sites-enabled 中创建任何 .conf 文件并将其指向内容位置,即可为站点提供服务。

因此,为了添加新的静态站点,必须在 sites-enabled 文件夹中创建一个新的 .conf 文件,并使用任意名称(例如 example.conf)。并且必须在其中添加以下几行

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log 合并

其中,*:80 表示“通过端口 80 向世界开放”,DocumentRoot /var/www/html 表示“网站内容路径”

相关内容