虚拟主机(Virtual Host)是指在一个机器上运行多个网络站点 (比如:www.company1.com和www.company2.com)。 如果每个网络站点拥有不同的IP地址,则虚拟主机可以是"基于IP"的; 如果只有一个IP地址,也可以是"基于主机名"的, 其实现对最终用户是透明的。具体细节可以查看Apache官方说明 。
一. “基于主机名”虚拟主机的配置
Listen 81
NameVirtualHost *:81
<VirtualHost *:81 >
ServerAdmin [email protected]
DocumentRoot yourRoot
<Directory "yourRoot ">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
配置说明:
81 : 为端口号,可以是其他现在系统未用的端口
yourRoot : linux下格式形如: /export/www 注意最后没有"/"
将上面的添加到apache的配置文件httpd.conf(linux下在/usr/local/apache2/conf/,视具体情况而定),然后重新启动Apache .
注意:
要配置基于主机名的虚拟主机,必须保留原有的80端口。
二. 查看配置是否成功
在浏览器中输入 http://localhost:81 查看是否配置成功。
三. 常见问题常见解决方案
当在浏览器中查看配置成功与否出现问题时,可优先到Apache官方网站的FAQ 上或用搜索引擎搜索你的问题。
我这里就最常见403问题:
You don't have permission to access / on this server.
提供几种常见的解决方法:
1.按上面的配置正确,特别是:
Order allow,deny
Allow from all
2. 确保youRoot文件夹下有index.html文件(或名为index而后缀为其他形式(如.jsp .php等)的文件) ,因为Apache默认以index.html为网站首页,如果没有这个文件就会出现上面的403错误。
注:如果你想以其他形式的文件(如:index.jsp或index.php等)作为出现的网页,可将Apache的配置文件中的:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改为(如你想用index.jsp):
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>
如果需要浏览该文件夹下的内容,可以在</Directory>前添加:
Options Indexes
就可以了。
3. 针对linux用户,windows或其他用户一般没这种情况。Linux系统中一般会自带apache,在修改了配置文件后,最好到安装Apache的目录下重启Apache。