返回首页
当前位置: 主页 > 网络编程 > Php实例教程 >

apache虚拟主机配置基础教程

时间:2011-06-17 14:44来源:知行网www.zhixing123.cn 编辑:麦田守望者

Apache基于主机名称的虚拟主机配置(即多个主机名可以对应一个IP,apache根据不同的主机名称解析到不同的web目录。)下面是一个本地的实例。

#这里配置虚拟主机的使用的IP和端口号

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerAdmin xyz@zhixing123.cn //管理邮箱名称
ServerName bbs //主机名称
DocumentRoot “E:\virtual”

//上面的路径可以是一个绝对路径也可以是一个相对路径。其中相对路径是指相对于的web根目录的路径
ErrorLog logs/virtual_error_log

//为虚拟主机配置的错误日志文件
CustomLog logs/virtual-access_log common

//用户访问日志文件
</VirtualHost>

好了,虚拟主机的配置都完成了,如果你对apache比较了解,还可以增加其它辅助的配置进去。

但是这时候会遇到一个问题,在浏览器里输入http://bbs/ (bbs是我们刚才配置的主机名称)会发现出现了无法显示网页的页面。这是什么原因呢?这是因为在浏览器里输入的域名,浏览器默认的先查询windows系统自带的一个hosts文件,查找跟主机名称对应的Ip地址,如果没有记录,就会向dns服务器发送请求以解析这个主机名。这就是为什么我们输入http://bbs出现无法显示网页的原因了,是的,因为没有找到主机名对应的IP地址。那怎么解决呢?我们用的是本地的apache服务器,IP地址是本地地址,所以不可能让dns服务器为我们解析主机名。但是我们可以手动修改windows系统的hosts文件,让hosts文件为我们解析ip(hosts文件一般在系统根目录下的windows/system32/drivers/etc目录下或者在系统根目录下的windows/system32目录下),只要在系统的hosts文件加入如下一行就ok了。

127.0.0.1 bbs

好了,输入http://bbs 就可以访问我们的虚拟主机对应的web目录了。

但是,还没有结束,输入我们原来的主机命会发现访问到的同样是bbs虚拟主机对应的web目录。这是因为我们虚拟主机的设置覆盖了原来中心主机的设置。解决方法很简单,把原来的中心主机也配置成虚拟主机就可以了。关于这点,apache的帮助手册是这么描述的:

如果你想在现有的web服务器上增加虚拟主机,你必须也为现存的主机建造一个<VirtualHost>定义块。这个虚拟主机中ServerName和DocumentRoot所包含的内容应该与全局的ServerName和DocumentRoot保持一致。还要把这个虚拟主机放在配置文件的最前面,来让它扮演默认主机的角色。

一样的配置方法(别忘了设置hosts文件 哦),完成后,重新启动apache就ok了。 就是这么简单!
 

------分隔线----------------------------
标签(Tag):php php实例教程 php源代码 php基础教程
------分隔线----------------------------
推荐内容
猜你感兴趣