学习笔记--Apache虚拟主机配置

本文参考文档:

Apache2.2中文手册

目的:在本机(windows系统)使用域名指向多个Apache服务器的虚拟主机

IIS下请参考

IIS下使用域名在本机调试多个站点

一.在hosts下添加IP-域名重定向.这里不重复了。

二.配置虚拟主机

默认安装的Apache服务器下,虚拟主机在conf/extra/httpd-virtualhost.conf里配置.

因为主配置文件(httpd.conf)里包含了此文件.

1.打开NameVirtualHost指令

我第一次配置就是不知道这个什么作用,才一直没弄好.

这个指令一般注释行里有的,也可以自己重新写上

NameVirtualHost addr[:port]

文档说明是指定虚拟主机使用的IP段,建议addr使用IP地址,并指定端口号,如: 127.0.0.1:80 或 *:80

2.配置<VirtualHost>标签.这个是关键

格式如下:

 

<VirtualHost addr[:port] [addr[:port]] ...>
#指定管理员Email
ServerAdmin webmaster@host.foo.com
#指定虚拟主机的根目录
DocumentRoot /www/docs/host.foo.com
#指定主机名
ServerName host.foo.com
#指定虚拟主机的别名,可以为一个主机匹配多个主机名,使用空格分开
ServerAlias www.foo.com web.foo.com
#日志文件名
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log
</VirtualHost>

3.配置虚拟目录权限,如果虚拟主机的根目录没有在原来的目录内部,需要单独地配置权限才能访问

 

<Directory /usr/local/httpd/htdocs>
Options FollowSymLinks
Order Deny,Allow
</Directory>

 

 Options:指令控制了在特定目录中将使用哪些服务器特性。

option可以为None ,在这种情况下,将不启用任何额外特性。或设置为以下选项中的一个或多个:

All

除MultiViews之外的所有特性。这是默认设置。

ExecCGI

允许使用mod_cgi执行CGI脚本。

FollowSymLinks

服务器允许在此目录中使用符号连接。

Includes

允许使用mod_include提供的服务器端包含。

IncludesNOEXEC

允许服务器端包含,但禁用"#exeC cmd"和"#exeC cgi"。但仍可以从ScriptAlias目录使用"#include virtual"虚拟CGI脚本。

Indexes

如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表。

MultiViews

允许使用mod_negotiation提供内容协商的"多重视图"(MultiViews)。

SymLinksIfOwnerMatch

服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。

好了,下面重启下apache,应该就可以访问了,如果不能访问,仔细检查每个配置是否生效,是否有冲突。