我一直在试图遵循一些基本的教程来解释如何让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
文件中的虚拟主机(通常每个文件一个)
Listen
指令)在/etc/apache2/ports.conf
/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”