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


27

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

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

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

Answers:


35

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
  • 在mods /etc/apache2/mods-available

您可以使用符号链接或a2一系列命令来操纵它们:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

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

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


很棒的总结!比我正在研究的内容更加清晰和简洁。+1。
史蒂文

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

+1。当您需要维护这些配置时,请转到“启用站点”而不是“可用站点”,然后直接从那里访问它们。这样,您将始终能够确定和访问当前使用的站点配置。
罗斯

9

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

Apache Wiki提供了有关配置文件名称和位置的便捷指南

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

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

多年来,所包含的配置文件的组织也有所发展。

例如,我使用apt-get install apache2-在以下基于Ubuntu的系统上安装了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较旧版本(或其他发行版)的文档,则可以调整该信息以适合Ubuntu中事物的组织方式。


-2

Linux中的Apache可以通过两种类型安装。一个是通过apt-get以及其他下载tar文件并解压缩...的。因此,在apt-get进程中,站点是从/ etc / apache2 / sites-enabled文件夹提供服务的,因为通过以下方式在这些文件夹中配置了服务于外部世界的每个站点: .conf文件示例000-default.conf是启用以显示apache works的默认站点。

因此,通过在启用了sites的站点中创建任何.conf文件并将其定向到内容位置,即可提供.thus site服务。

因此,为了添加新的静态站点,必须在启用站点的文件夹中创建一个新的.conf文件,其名称为example 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表示“站点内容的路径”


这种错误和误导。您可以在可用站点中创建文件,以便可以使用诸如a2ensite之类的工具(推荐)。通常,您使用a2ensite将这些conf文件符号链接到已启用站点的站点中。apt-get与配置站点无关。
HörmannHH
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.