这两天为了架设一个学习jsp的环境,参考网上的文章,折腾了2天才搞定Apache2+tomcat4.1的整合,下面我的整合总结。如果你参考这篇文章遇到问题请和我联系shanyougz@21cn.com
一、 软件准备:
假设你有一台能正常运行win2000 server的软硬件环境。
1、j2sdk1.4.1:
到 http://java.sun.com/j2se/下载!
(注意是Windows (all languages, including English)的sdk版)
2.Apache2.0.47:
到 http://archive.apache.org/dist/httpd/binaries/win32/apache_2.0.47-win32-x86-no_ssl.msi下载!
3.Tomcat4.1.27
到http://apache.oregonstate.edu/jakarta/tomcat-4/binaries/jakarta-tomcat-4.1.27.exe下载!
4.mod_jk.dll: 到 http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk/release/v1.2.4/bin/win32/mod_jk_2.0.46.dll下载!
(说明,由于参考网上的文章用mod_jk-2.0.43.dll与Apache2.0.47配置没成功,现用mod_jk-2.0.46.dll代替)
二、 软件安装
l 安装jdk
不需要安装源代码和Demo。 按照安装向导进行安装,我选择安装到c:\ j2sdk1.4.0_01, 设置Java home的环境变量
JAVA_HOME=c:\j2sdk1.4.0_01
添加JAVA_HOME 和 JAVA_HOME\bin 到系统环境变量 PATH ,我的设置是
C:\j2sdk1.4.0_01;C:\j2sdk1.4.0_01\bin
l 安装Apache2.0.47
按照安装向导进行安装(选择安装目录为d:\,方便下面操作;安装成功后其路径为:d:\Apache2),安装过程中射指你的Domain和ServerName 为你的服务器名Fully Qualified Domain Name ( FQDN )或者设置为 localhost(这只是适合于测试,只能通过本机访问。
l 安装Tomcat 4.1.27
按照安装向导进行安装,更改安装目录为你要安装的目录,我所安装的目录是d:\ Tomcat4.1,其间会要你输入Admin(系统管理员)的口令。
设置Tomcat home的环境变量,再添加一个Catalina home
TOMCAT_HOME= d:\Tomcat4.1
CATALINA_HOME=d:\Tomcat4.1
l 安装于配置mod_jk.dll
将下载的mod_jk-2.0.46.dll复制到D:\Apache2\modules下,打开D:\Apache2\conf\httpd.conf,在最后加入下面这段代码并保存。
#设置Apache与Tomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理
# Using mod_jk2.dll to redirect dynamic calls to Tomcat
LoadModule jk_module modules/mod_jk_2.0.46.dll
三、 分别测试Apache和Tomcat
l 打开D:\Apache2\conf\httpd.conf,查找 AddDefaultCharset ISO-8859-1 改成 #AddDefaultCharset ISO-8859-1
AddDefaultCharset GB2312
打开D:\Apache2\htdocs\index.html.zh-cn.gb2312 改成index.html
修改完成后重新启动Apache,打开浏览器输入http://localhost (注意需要停止IIS服务)。此时能在浏览器中看到Apache2的欢迎界面.说明Apache2工作正常.
l 将Tomcat启动,然后打开浏览器,在地址栏中输入:http://localhost:8080 检验:此时能在浏览器中看到Tomcat的欢迎界面.说明Tomcat工作正常.
四、 整合配置Apache2和Tomcat4.1(通过mod_jk模块)
拷贝和粘贴如下内容到D:\Apache2\conf\httpd.conf
JkWorkersFile "D:/Tomcat4.1/conf/workers.properties"
JkLogFile "D:/Tomcat4.1/logs/mod_jk2.log"
JkLogLevel info
#设置虚拟主机
<VirtualHost *>
ServerAdmin junningli@sohu.com
DocumentRoot d:/tomcat4.1/webapps/
DirectoryIndex index.html index.htm index.jsp
ServerName localhost
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /examples/servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
</VirtualHost>
在D:\Tomcat4.1\conf下新建一个文件workers.properties 注意文件后缀,其内容如下:
workers.tomcat_home=d:\Tomcat4.1
#让mod_jk模块知道Tomcat
workers.java_home=c:\j2sdk1.4.0_01
#让mod_jk模块知道j2sdk
ps=
worker.list=ajp13
#模块版本,现有ajp14了,不要修改
worker.ajp13.port=8009
#工作端口,若没占用则不用修改
worker.ajp13.host=localhost
#本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13
#类型
worker.ajp13.lbfactor=1
#代理数,不用修改
五、 整合测试
l 启动Apache2.0.47与Tomcat4.1.27 。
l 2.在地址栏中分别输入http://localhost/examples/jsp/index.html ,与http://localhost:8080/examples/jsp/index.html若结果相同,那恭喜你,Apache2.0.47与Tomcat4.1.27整合成功了!!!
六、 建立自己的项目
你已有一个项目在d:\tomcat4.1\webapps\test目录下﹐包含index.jsp及其它文件,注意WEB-INF下的web.xml﹐一般有以下内容即可
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Welcome to Tomcat</display-name>
<description>
Tomcat test
</description>
</web-app>
设置Tomcat以支持你的项目,打开d:\Tomcat 4.1\conf\server.xml文件,在"</Host>"之前,"</Context>"之后添加 <Context path="/test" docBase="d:\tomcat4.1\webapps\test" debug="0" reloadable="true" crossContext="true"/>并保存。
重新启动Tomcat4,打开浏览器输入http://localhost/test/就可以看到测试页面了。
订正1:发现servlet的设置错误,参考下篇文章解决的。
原虚拟主机配置
<VirtualHost *>
ServerAdmin junningli@sohu.com
DocumentRoot d:/tomcat4.1/webapps/
DirectoryIndex index.html index.htm index.jsp
ServerName localhost
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
</VirtualHost>
更正后的配置
<VirtualHost *>
ServerAdmin junningli@sohu.com
DocumentRoot d:/tomcat4.1/webapps/
DirectoryIndex index.html index.htm index.jsp
ServerName localhost
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /examples/servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
</VirtualHost>
参考资料:
http://www.macdevcenter.com/pub/a/mac/2002/08/20/tomcat_integration.html?page=1
订正日期:2003.11.3