Apache2.2.6 + Tomcat6.0.x 整合后,“不能”设置虚拟主机了!!!

okzrz 2007-12-19 09:15:27
现在访问JSP页面都一点问题没用,但是如果设置虚拟主机的话Tomcat就不能正常解析文件了。

(我的Tomcat、Apache工作目录都指向 D:\www目录)我在Apache中设置虚拟主机,把www.abc.com指向d:\www ,把bbs.abc.com指向d:\www\bbs 。现在如果访问bbs.abc.com,Tomcat应该解析d:\www\bbs下的文件,结果现在Tomcat直接解析d:\www下的文件(不管Apache怎么虚拟Tomcat始终把D:\www作为根目录)。怎么才能让Apache给他那个文件,他就解析哪个呢?


不知道说明白了没,我觉得我的第6步配置的有问题,我按笔者的方法配置不行我就按照以前的方法设置了)

下面是我整合他们参考的内容
#############################################
参考http://zipboy1979.spaces.live.com/blog/cns!F998844D43DE90BA!173.entry
、安装 JDK 1.6
2、安装 Apache 2.2.6
3、安装 Tomcat 6.0.14

4、修改 Apache 配置文件。
#
# This should be changed to whatever you set DocumentRoot to.
#
#<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
<Directory "G:/www/htdocs">
.
.
.
Order allow,deny
Allow from all
</Directory>

5、Apache2.2.6 与 Tomcat6的整合
在httpd.conf后面添加如下内容
LoadModule jk_module modules/mod_jk-apache-2.2.4.so #调入mod_jk模块
JkWorkersFile conf/workers.properties #连接必要的连接属性(在conf/workers.properties文件里)
JkMount /servlet/* ajp13 #所有servlet都指向ajp13
JkMount /*.jsp ajp13 #所有JSP都指向ajp13
JkMount /*.do ajp13 #所有struct都指向ajp13
在Apache/conf/下创建workers.properties文件,内容如下
worker.list=ajp13 #在工作列表里的名字是ajp13
worker.ajp13.port=8009 #ajp13使用的port是8009
worker.ajp13.host=localhost #ajp13的主机是本地
worker.ajp13.type=ajp13 #ajp13的类型是ajp13 (ajp13是一种连接方式)
worker.ajp13.lbfactor=1 # 平衡负载

拷贝mod_jk-apache-2.2.4.so到modules下

6、修改Tomcat6的工作目录与Apache相同,修改tomcat的server.xml,在</Host>前添加:
<Context path="" docBase="e:\www\root" debug="0" reloadable="true" crossContext="true"/>
这里如果按参考的配置方法,把tomcat里conf/server.xml文件的<Host name="localhost" appBase="/webapps" ... > 替换appBase="/webapps"成appBase="d:/web",则Tomcat就无法访问到任何文件,Apache提示找不到文件(Apache把请求提交给Tomcat Tomcat找不到任何文件?我这么理解)


7、增加基于名称的虚拟主机
打开Apache2\conf下的httpd.conf,查找#NameVirtualHost *:80,去掉前面的注释。
添加虚拟主机www.test.com,在httpd.conf的最后,添加如下代码:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot d:/www/bbs
ServerName bbs.abc.com.cn
</VirtualHost>
<VirtualHost *:80>
DocumentRoot d:/www
ServerAlias 192.168.1.7
ServerAlias 127.0.0.1
ServerName www.abc.com.cn
</VirtualHost>
...全文
821 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongzheng83 2008-08-26
  • 打赏
  • 举报
回复
我也遇到这个问题????????????
chmicrosoft 2008-08-23
  • 打赏
  • 举报
回复




帮顶
红男爵 2008-08-19
  • 打赏
  • 举报
回复
确认Apache和Tomcat的设置保持一致。

Apache2\conf¥httpd.conf里DocumentRoot和Directory都应该指到“d:/www”;
Tomcat\conf\server.xml里的<Host name="localhost" appBase="d:/www" ...>
workers.properties 文件没有问题。

然后再检验http://localhost和http://localhost:8080是否显示一致。
就能确认连动是否OK了。

同时使用两个虚拟主机,我没使用过。
但觉得
<VirtualHost *:80>
DocumentRoot d:/www/bbs
有点问题。

能否改成:
<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.abc.com.cn
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /
ServerAlias 192.168.1.7
ServerAlias 127.0.0.1
ServerName www.abc.com.cn
</VirtualHost>
试试看,绝对路径看上去有点问题。DocumentRoot d:/www/bbs 文中并没有定义过嘛。

关注ing,,,,
老程序员 2008-07-31
  • 打赏
  • 举报
回复
我也出现了这种情况.tomcat可不可以不配
要配怎么配
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
不会,帮顶
jspxnet 2008-01-21
  • 打赏
  • 举报
回复
注意,你的虚拟主机需要配置两个地方,
apache 和tomcat都要配
feicuishen 2008-01-18
  • 打赏
  • 举报
回复
你访问bbs.abc.com的时候,是不是还是显示d:/www里面的内容,你把位置换一下,就会发现问题了:
<VirtualHost *:80>
DocumentRoot d:/www
ServerAlias 192.168.1.7
ServerAlias 127.0.0.1
ServerName www.abc.com.cn
</VirtualHost>
<VirtualHost *:80>
DocumentRoot d:/www/bbs
ServerName bbs.abc.com.cn
</VirtualHost>
zzblue 2008-01-14
  • 打赏
  • 举报
回复
apache里的路径和tomcat中context设置的路径应当一样吧
okzrz 2007-12-19
  • 打赏
  • 举报
回复
帖子里第6步我写的docBase="e:\www\root" 实际上路径是正确的,这是个参考。

24,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧