我一直在尝试遵循一些基本教程,这些教程解释了如何启动和运行 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.conf
vhost 条目来代替全局重定向或重写规则。其他注意事项 — 通常,您应该保持apache2.conf
原样,并确保为目录中的 vhost 设置一致的命名方案sites-available
。
答案2
配置文件的位置和组织是可配置的,并且可以在主要版本之间或发行版之间发生变化。
Apache Wiki 有一个方便的指导配置文件的名称和位置。
因为配置文件可以包含include
指令,所以可以将配置的各个部分分离为较小的文件。由于标准 Apache 配置文件包含许多注释和大量标准项,因此将最有可能更改的部分分离出来是有意义的。
主配置文件的名称可以在编译时更改,在最近的版本中,它已从 更改httpd.conf
为apache2.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 表示“网站内容路径”