今天在集成环境下配虚拟主机,没想到虚拟主机开启后,localhost竟然无法访问了,解决办法是这样的:
实例一,Apache 配置localhost虚拟主机步骤
1,用记事本打开apache目录下httpd文件(如:D:\wamp\bin\apache\apache2.2.8\conf),找到如下模块
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
去掉前面的#,这样就开启了httpd-vhosts虚拟主机文件。这时候重启wamp环境,无法打开localhost,需要在httpd- vhosts.conf配置一下。
2,用记事本打开httpd-vhosts文件,配置好localhost虚拟主机,参照httpd- vhosts文件中实例,修改成如下:
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot "D:\wamp\www"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/dummy-host.localhost-error.log"
CustomLog "logs/dummy-host.localhost-access.log" common
修改配置如下:
DocumentRoot 修改为本地wamp环境下的www目录(如:D:\wamp\www)
ServerName改为localhost
3,重启Apache,发现localhost可以正常打开,配置localhost比较简 单。
实例二,Apache配置 test.biuuu.com虚拟主机步骤
1,方法同上,复制配置代码修改如下:
ServerAdmin test@biuuu.com
DocumentRoot E:\WebRoot\biuuu
ServerName test.biuuu.com
ErrorLog "logs/dummy-host2.localhost-error.log"
CustomLog "logs/dummy-host2.localhost-access.log" common
2,打开host文件(C:\WINDOWS\system32\drivers\etc\hosts),增加一行代码
127.0.0.1 test.biuuu.com
3,在浏览器中打开test.biuuu.com,发现如下错误403 Forbidden错误
Forbidden
You don't have permission to access / on this server.
分析:这主要是目录访问权限没有设置,需要设置对目录的访问权!
4,打开httpd文件,找到 如下语句
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
复制以上代码,并进行目录修改,把/替换为E:\WebRoot\biuuu,修改virtualHost代码如下
在浏览器中测试发现还是打不开,提示如上403 Forbidden错误,修改其中的Deny from all为allow from all
5,重启Apache,虚拟主机配置成 功!
注意事项
1,目录路径,如E:\WebRoot\biuuu
2,访问权限,如上Deny from all修改为allow from all
3,host文件,配置虚拟域名host指向
4,httpd文件,打开Include conf/extra/httpd-vhosts.conf模块
5,httpd-vhosts文件,配置虚拟主机
使用 Apache配置httpd-vhosts虚拟主机对于开发人员来说比较简单,但却非常重要,仅供参考!
PS: D:\wamp\alias 也可以这样配置虚拟域名,和例二相同效果
ServerName blog.cc
ServerAlias blog.cc
DocumentRoot "D:\wamp\www\blog"
Options All FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.shtml index.aspx default.aspx
AllowOverride All
Order Deny,Allow
Allow from all
环境要求
Apache(HTTPD)我的版本是2.4.3 Win32,你可能需要php引擎模块来测试php网站。
配置文件
假设您已经知道在 httpd.conf 文件中为 main server 配置各种参数包括 DocumentRoot、ServerAdmin、ServerName等。那么配置虚拟主机就很方便了。为了配置文件方便管理,httpd.conf 中有一行指令用来包含外部的配置文件:
Include conf/extra/httpd-vhosts.conf
这行默认是注释掉的,主要是为虚拟主机的配置。所以在该文件(httpd-vhosts.conf)中添加虚拟主机的配置内容:
如果我在 e:/etc/www/ 下存放了两个网站,一个是 ggicci.cn,一个是 chongwuxingqiu.com。分别存放在 ggicci.cn 目录和 chongwuxingqiu.com 目录下。我现在要为 ggicci.cn 配置成一个虚拟主机,占据端口 81,也就是说我访问该网站需要输入 localhost:81 (本文内容只与本地测试相关,不涉及远程服务器)。chongwuxingqiu.com 同理占据端口 82。我的配置内容如下:
Listen 81 # 监听81端口
<VirtualHost *:81>
ServerAdmin ggicci@163.com
DocumentRoot "e:/etc/www/ggicci.cn" # 网站根目录
DirectoryIndex index.html index.php # 主页索引,因为是php网站,所以添加一个.php的
# ServerName
ErrorLog "logs/ggicci.cn-error.log" # 错误日志
CustomLog "logs/ggicci.cn-access.log" common # 访问日志
</VirtualHost>
Listen 82
<VirtualHost *:82>
ServerAdmin ggicci@163.com
DocumentRoot "e:/etc/www/chongwuxingqiu.com"
DirectoryIndex index.html index.jsp # jsp网站,所以添加一个.jsp的
# ServerName
ErrorLog "logs/chongwuxingqiu.com-error.log"
CustomLog "logs/chongwuxingqiu.com-access.log" common
JkMount /*.jsp chongwuxingqiu # 这个是 mod_jk 的指令,与 tomcat 相关
</VirtualHost>
测试结果
#e:/etc/www/ggicci.cn/index.php
<?php
echo "ggicci.cn";
?>
![](https://img-my.csdn.net/uploads/201212/30/1356874880_8677.png)
//e:/etc/www/pet.com/index.jsp
<!DOCTYPE html>
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>宠物星球</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
out.println("宠物星球");
%>
</body>
</html>
![](https://img-my.csdn.net/uploads/201212/30/1356874964_8076.png)