学习笔记--Apache虚拟主机配置
本文参考文档:
目的:在本机(windows系统)使用域名指向多个Apache服务器的虚拟主机
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,应该就可以访问了,如果不能访问,仔细检查每个配置是否生效,是否有冲突。