=============================================
本文我已经测试通过了!
=============================================
题目:windows2000 下整合apache2与tomcat4
作者:robornet
日期:2002-10-30
原由:搞了一段时间的java项目,到分发的时候了,可找不到一份最新的apache2与tomcat4的整合配置,遂看了半天的jakarta在线资料,并参照以前网友的文章,
写了这篇配置文档,以作参考,欢迎斧正!
目录:
一、软件准备
二、软件安装
三、首次配置及测试
四、整合配置
五、全线测试
六、不足
七、感谢
八、说明
步骤:
一、软件准备:
假设你有一台能正常运行win2000的硬软软件环境。
1.j2sdk1.4.1: 到http://java.sun.com/j2se/1.4.1/download.html下载!(注意是windows (all languages, including english)的sdk版)
2.apache2.0.43: 到http://www.apache.inetcosmos.org/dist/httpd/binaries/win32/apache_2.0.43-win32-x86-no_ssl.msi 下载!
3.tomcat4.1.12:到 http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.12/bin/jakarta-tomcat-4.1.12.exe 下载!
4.mod_jk.dll: 到http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk/release/v1.2.0/bin/win32/mod_jk-2.0.42.dll下载!
(说明,由于mod_jk2-2.0.43.dll与apache2.0.43配置没成功,现用mod_jk-2.0.42.dll代替)
二、软件安装:
(1)安装j2sdk:
1.按照安装向导进行安装(一般安装到c:\j2sdk1.4.1下,方便下面操作)
(2)安装apache:
1.按照安装向导进行安装(选择安装目录为c:\,方便下面操作;安装成功后其路径为:c:\apache2)
(3)安装tomcat:
1.按照安装向导进行安装(更改安装目录为c:\tomcat4,若只是测试,没必要把tomcat安装成services,方便下面操作),
其间会要你输入admin(系统管理员)的口令。
三、首次配置及测试:
对以上安装的软件环境进行首次配置,并测试其环境。
(1)配置–环境变量:
1.新建系统变量java_home,其值为:c:\j2sdk1.4.1 //若你没按以上路径安装请更改为正确的路径
2.新建系统变量tomcat_home,其值为:c:\tomcat4 //同上
3.新建系统变量classpath,其值为:%java_home%\lib;%tomcat_home%\lib
(2)修改错误:
1.apache2.0.43有一个小问题,默认安装成功后在apache2主目录下的htdocs目录中没有index.html文件,你须将该目录下的index.html.en改名为index.html
(3)测试默认服务:
请先运行apache2与tomcat4.
1.打开浏览器,在地址栏中输入:http://localhost 检验:此时能在浏览器中看到apache2的欢迎界面.说明apache2工作正常.(注意,tomcat默认端口为80,
若有其它程序占用,请更改,下面有说明)
2.打开浏览器,在地址栏中输入:http://localhost:8080 检验:此时能在浏览器中看到tomcat的欢迎界面.说明tomcat工作正常.(注意,tomcat默认端口为
8080,若有其它程序占用,请更改,下面有说明)
小结:若到此步骤没有任何错误,那可继续下面的操作,let go!
(4)测试你的项目:
现只用tomcat测试你的项目,为方便此例说明,假设你已有一个项目在e:\application\oa目录下
(包含index.jsp及其它jsp文件和bean,如web-inf\classes\下的servlet、javabean)。
1.设置tomcat以支持你的项目,打开c:\tomcat4\conf\server.xml文件,在"</host>"之前,"</context>"之后添加
<context path="/oa" debug="0" docbase="e:\application\oa" reloadable="true"/>并保存。
说明:context (表示一个web应用程序): docbase定义应用程序的路径;path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/oa;
reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/web-inf/lib 和/web-inf/classes目录的变化,自动装载修改或新的bean
及servlet,我们可以在不重起tomcat的情况下看到bean带给jsp的变化。
2.启动你tomcat4.1.12,在浏览器的地址中输入http://localhost:8080/oa,如你的jsp及bean,servlet没有错误,一般会将你的index.jsp/index.html文件的
内容给执行并显示。
小结:若到此步骤没有任何错误,那可继续下面的操作,let go!
四、整合配置:
对apache与tomcat做相应的配置,让其共同为你工作。
若apache2与tomcat4正运行着,请关闭它们。
(1)配置apache2:
1.先将下载的mod_jk-2.0.42.dll复制到c:\apache2\modules下。
2.设置主页文件类型:打开c:\apache2\conf下的httpd.conf,查找"directoryindex",在index.html的后面添加index.jsp并保存,注意相互之间应有空格。
3.设置虚拟主机,让apache自动控制html与jsp的解析: 打开c:\apache2\conf\httpd.conf,在最后加入下面这段代码并保存。
<virtualhost localhost> //localhost为本机,你可用本机ip
serveradmin robornet@robornet.com //你的mail地址
documentroot e:\application //你的项目组根目录,因为application下有oa及其它多个项目,因此只能设为e:\application
servername localhost //你的服务名,若你的机器有域名,设为域名,但现用本机作测试
errorlog logs/robornet_home_log.txt //错误日志,在c:\apache2\logs下,可用其它任意名字
customlog logs/robornet_custom_log.txt common //访问日志,在c:\apache2\logs下,可用其它任意名字
</virtualhost>
4.设置apache与tomcat之间的连接,让apache遇到jsp文件时,在后台将其交由tomcat去处理:打开c:\apache2\conf\httpd.conf,在最后加入下面这段代码并保存。
# using mod_jk2.dll to redirect dynamic calls to tomcat
loadmodule jk_module modules/mod_jk-2.0.42.dll //装载模块,用于处理连接
jkworkersfile "c:/tomcat4/conf/workers.properties" //设置模块的工作文件,下面会说明
jklogfile "c:/tomcat4/logs/mod_jk2.log" //设置模块工作的日志文件,tocmat启动时会自建
jkmount /servlet/* ajp13 //让apache支持对servlet传送,用以tomcat解析
jkmount /*.jsp ajp13 //让apache支持对jsp传送,用以tomcat解析
小结:到此apache的配置基本完成,不过这时启动apache还不能正常工作。
(2)配置tomcat4:
1.在c:\tomcat4\conf下新建一个文件workers.properties 注意文件后缀,建议用editplus或ultraedit建立,若用记事本,记得改名,
不要成了workers.properties.txt了!其内容如下:
workers.tomcat_home=c:\tomcat4 //让mod_jk模块知道tomcat
workers.java_home=c:\j2sdk1.4.1 //让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 //代理数,不用修改
2.打开c:\tomcat4\conf下的server.xml文件:查找到"<!– define a coyote/jk2 ajp 1.3 connector on port 8009 –>",将以前的代码:
<!– define a coyote/jk2 ajp 1.3 connector on port 8009 –>
<connector classname="org.apache.coyote.tomcat4.coyoteconnector" port="8009"
minprocessors="5" maxprocessors="75" enablelookups="true" redirectport="8443"
acceptcount="10" debug="0" connectiontimeout="20000" useurivalidationhack="false"
protocolhandlerclassname="org.apache.jk.server.jkcoyotehandler"/>
<!– define an ajp 1.3 connector on port 8009 –>
<!–
<connector classname="org.apache.ajp.tomcat4.ajp13connector" port="8009" minprocessors="5"
maxprocessors="75" acceptcount="10" debug="0"/>
–>
更改为:
<!– define a coyote/jk2 ajp 1.3 connector on port 8009 –>
<!–
<connector classname="org.apache.coyote.tomcat4.coyoteconnector" port="8009"
minprocessors="5" maxprocessors="75" enablelookups="true" redirectport="8443"
acceptcount="10" debug="0" connectiontimeout="20000" useurivalidationhack="false"
protocolhandlerclassname="org.apache.jk.server.jkcoyotehandler"/>
–>
<!– define an ajp 1.3 connector on port 8009 –>
<connector classname="org.apache.ajp.tomcat4.ajp13connector" port="8009" minprocessors="5"
maxprocessors="75" acceptcount="10" debug="0"/>
并保存后关闭.
小结: 兄弟一定都累了吧!好了,可以来一杯java,好好享受你的成果吧!
五、全线测试:
1.启动apache2,tomcat4 。
2.打开你的浏览器,在地址栏中输入http://localhost:8080/oa ,若与上面的测试相同,则tomcat重新配置后正常!
3.在地址栏中输入http://localhost/oa ,若与http://localhost:8080/oa的结果相同,那恭喜你,apache2与tomcat4整合成功了!!!
六、不足:
1.虽用最新的apache2.0.43与tomcat4.1.12,但我是用的jk连接的,刚用jk2配置未成功,所以只好写这份文档了!
2.tomcat还是采用的tomcat-standalone,未采用tomcat-apache,不过这个大家可以自己完成,这个应不是个问题!
七、感谢:
1.感谢apache组织,为我提供了如此之好的服务器,而且还是免费的!
2.感谢以前写过apache1.x与tomcat3.x/tomcat4.*配置文档的朋友们,为我今天写这篇文档作了参考!
八、说明:
1.若您觉得满意,想转载或收藏这篇文章,我非常感谢,但请您注明作者robornet及出处http://www.xtong.com.cn/robornet.
2.该文章已被赛迪网采用,详见:http://developer.ccidnet.com/pub/disp/article?columnid=322&articleid=30015&pageno=1
