如何configurationApache(站点可用vs httpd.conf)

我一直在试图遵循一些基本的教程来解释如何让Apache启动和运行(在Ubuntu上,在Amazon上运行)。 我大部分是空白的,因为所有的教程告诉我configurationhttpd.conf(添加DocumentRoot等)。

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

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

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

  • /etc/apache2/apache2.conf “main”configuration
  • /etc/apache2/httpd.conf “user”configuration
  • /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> 

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

例如,使用httpd.conf而不是vhost条目的例子是全局redirect或重写规则。 其他小技巧 – 一般情况下,您应该单独离开apache2.conf ,并确保为sites-available目录中的vhosts设置了一致的命名scheme。

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

Apache Wiki提供了有关configuration文件的名称和位置的方便指南 。

因为configuration文件可以包含include指令,所以configuration的一部分可以被分离成更小的文件。 由于标准的Apacheconfiguration文件包含许多注释和大量的标准项目,因此分离出最有可能改变的部分是有意义的。

主configuration文件的名称可以在编译时更改,在最近的发行版中它已经从httpd.conf更改为apache2.conf

多年来,在包含的configuration文件的组织方面也发生了一些变化。

例如,我使用apt-get install apache2在基于Ubuntu的系统上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 

因此,您可能最感兴趣的几个configuration设置现在位于/etc/apache2/sites-available/default

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

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

因此通过在启用站点的地方创build任何.conf文件,并将其指向内容的位置。

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