我想在Solaris下建一虚拟主机
例如:A.domain.com
B.domain.com
均指向一个IP地址:12.34.56.78

我做了如下工作:
1,修改DNS,让A.domain.com和B.domain.com均指向12.34.56.78,成功。
2,修改Apache的配置文档httpd.conf,该文档当中有一块Section 3是专门配置虚拟主机的,我添加了如下语句:
ServerName server.domain.com
NameVirtualHost 12.34.56.78:80

<VirtualHost 12.34.56.78>
DocumentRoot "/apache/htdocs/A"
ServerName A.domain.com
ServerAdmin webmaster@yourdomain.com
</VirtualHost>

<VirtualHost 12.34.56.78>
DocumentRoot "/apache/htdocs/B"
ServerName B.domain.com
ServerAdmin webmaster@yourdomain.com
</VirtualHost>

然后重启HTTPD进程,发现在IE下A.domain.com和B.domain.com显示的页面相同。

我想问题可能出现在httpd.conf文档当中,Section 2: 'Main' server configuration当中,但我不知道该怎么做,试了很久,还是不行。若您知道该怎么做,请授金言,感激不尽!

windowsnt 回复于:2002-10-28 09:29:27
看一下apache的日志

sunspy 回复于:2002-10-28 09:43:41
虚拟主机的话 ,您的两个网站的页面 ,分别放在不同的目录下 ,什么方法能够区别呢?
是找那个 INDEX.HTML ,这点谁能说明一下 ?

要做虚拟主机 ,您在安装APACHE的时候 ,必须将虚拟主机的功能 ,在配置时加进去 ,不然 ,即使您用了SELECTION 2也没用 ,我只能帮您这一点了 。哈哈!

burningsky 回复于:2002-10-28 12:56:50
谢谢
两个站点分别放到不同目录下,用DocumentRoot来区别。
Apache当中是什么模块来支持虚拟主机的?用什么命令来检查是否装了该模块呢?

burningsky 回复于:2002-10-28 14:40:33
# ./usr/apache/bin/httpd -S
VirtualHost configuration:
12.34.56.78:80 is a NameVirtualHost
default server default.domain.com (/etc/apache/httpd.conf:921)
port 80 namevhost default.domain.com (/etc/apache/httpd.conf:921)
port 80 namevhost A.domain.com (/etc/apache/httpd.conf:926)
port 80 namevhost B.domain.com (/etc/apache/httpd.conf:931)

看来配置应该都没问题啊,可是http://A.domain.com和http://B.domain.com显示的页面就业default.doamin.com!
我几乎察看了本章任何的帖子,发现很多人曾都碰到过我这样的问题,我试过其中一些方法,但还不不能解决问题。
我觉得这个问题有一定普遍性和代表性,忘斑竹能够写个精华帖子出来,以免后来者走弯路,谢谢!

wweihhui 回复于:2002-10-28 14:45:49
好建议!

burningsky 回复于:2002-10-28 14:57:14
我想是不是和DocumentRoot有关呢?
因为我感觉虚拟主机A.domain.com和B.domain.com都用的是default.domain.com的DocumentRoot,根本没用自己的DocumentRoot下面的index.html所以他们显示的页面均是default.domain.com的index.html。
在httpd.conf文档中有个“Section 2”,是对Apache最一些整体上的配置的,其中就有DocumentRoot,我设的目录就是default.domain.com的工作目录。是不是和这个有关呢?
我把这句话注释掉,那么就什么也看不到了。
我想问的是配置DocumentRoot时,有个整体的配置(Section 2)和虚拟主机自身的配置(Section 3),这两个DocumentRoot似乎有种关系,不知道怎么解决!

求助啊!

sunspy 回复于:2002-10-28 15:09:58
您能够将httpd.conf 中在末行键入 VIRTUALDOCUMENTROOT=/usr/www/%0 ,试一下


burningsky 回复于:2002-10-28 18:41:44
感谢回复!!
VIRTUALDOCUMENTROOT=/usr/www/%0 中的/usr/www/%0代表什么?
我试试看……

sunspy 回复于:2002-10-28 19:01:20
是通配符

burningsky 回复于:2002-10-28 19:12:55
还是不行,绝望中……
# ./apachectl configtest
Syntax error on line 960 of /etc/apache/httpd.conf:
Invalid command 'VIRTUALDOCUMENTROOT=/apache/htdocs/%0', perhaps mis-spelled or defined by a module not included in the server configuration



vipcui 回复于:2002-10-28 19:17:50
[这个贴子最后由vipcui在 2002/10/28 07:19pm 编辑]

下面是基于同一IP地址的多虚拟主机方案,配置完毕重新启动机器,兄弟您照猫画虎就能够了

<VirtualHost *>
ServerAdmin postmaster@catv.com.cn
DocumentRoot /quark/virtualhost/catv.com.cn
ServerName mail.catv.com.cn
</VirtualHost>

<VirtualHost *>
ServerAdmin postmaster@bcmc.com.cn
DocumentRoot /quark/virtualhost/bcmc.com.cn^M
ServerName mail.bcmc.com.cn
</VirtualHost>

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!