apache开启虚拟主机localhost无法访问

今天在集成环境下配虚拟主机,没想到虚拟主机开启后,localhost竟然无法访问了,解决办法是这样的:

实例一,Apache 配置localhost虚拟主机步骤
1,用记事本打开apache目录下httpd文件(如:D:wampinapacheapache2.2.8conf),找到如下模块
 
    # 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:wampwww"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/dummy-host.localhost-error.log"
    CustomLog "logs/dummy-host.localhost-access.log" common
   
 
修改配置如下:
DocumentRoot 修改为本地wamp环境下的www目录(如:D:wampwww)
ServerName改为localhost
3,重启Apache,发现localhost可以正常打开,配置localhost比较简 单。
 
实例二,Apache配置 test.biuuu.com虚拟主机步骤
 
1,方法同上,复制配置代码修改如下:
 
   
    ServerAdmin test@biuuu.com
    DocumentRoot E:WebRootiuuu
    ServerName test.biuuu.com
    ErrorLog "logs/dummy-host2.localhost-error.log"
    CustomLog "logs/dummy-host2.localhost-access.log" common
   
 
2,打开host文件(C:WINDOWSsystem32driversetchosts),增加一行代码
 
    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:WebRootiuuu,修改virtualHost代码如下
 
在浏览器中测试发现还是打不开,提示如上403 Forbidden错误,修改其中的Deny from all为allow from all
 
5,重启Apache,虚拟主机配置成 功!
 
注意事项
1,目录路径,如E:WebRootiuuu
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:wampalias 也可以这样配置虚拟域名,和例二相同效果
 
 ServerName blog.cc
 ServerAlias blog.cc
 DocumentRoot "D:wampwwwlog"
 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";
 ?>
 
//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://www.cnblogs.com/wangluochong/p/5503310.html