本篇文章主要是从安装JK插件方面来对整合Apache+Tomcat进行讲解。
以前在本机上做项目测试的时候,都是单独使用Tomcat,而没有像在服务器上一样用Apache+Tomcat这样的配置。但是整合Apache+Tomcat的好处人尽皆知。为什么我们不来试一试呢?
其实刚开始的时候并不是为了整合Apache和Tomcat而整合的,因为之前在我的PC机上根本就没 有装Apache,一个机缘——公司需要帮别人维护一个用PHP写的项目,于是为了测试PHP,所以我在PC机上装了个Apache,并安装了PHP(如 果有朋友需要了解Apache+PHP的安装可以看这篇文章:Apache+PHP+MySQL在Windows下的安装与配置图解。如果这篇文章被删除,你可以Email to me —— evle1984@163.com)。
好了,言归正传,开始我们的整合吧。
由于安装Apache和Tomcat的文章在网上一搜一大把,所以我也没有必要在这里啰嗦了。从那以后开始吧。
整合Apache和Tomcat最重要的一步就是安装Apache和Tomcat的“连接器”——JK 插件(不知道我这样的描述是否合理哈,若有错误,请大虾们不吝指出)。JK又分JK和JK2,JK2的官方文档说JK2是JK的升级版,而且功能增强,但 是JK的官方文档又说项目不支持JK2了,反而重新来开发JK,并且在网上也很难下到JK2了,Apache的官方网站上都只有JK了。如果要下载就到这 里:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/去下载一个适合的版本。
安装JK插件步骤:
1、下载JK。我下载的是mod_jk-1.2.26-httpd-2.2.4.so,下载好之后,将mod_jk-2.26-httpd-2.2.4.so拷贝到Apache/modules文件夹下;
2、在Apache/conf下创建两个配置文件:mod_jk.conf和workers.properties;
3、首先编辑workers.properties,这个配置文件是配置Tomcat的一些事项,内容如下:
# Defining a worker named tomcat1 and of type ajp13
worker.list=tomcat1
#
Set properties for tomcat1
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=50
#worker.tomcat1.cachesize=1
#worker.tomcat1.cache_timeout=600
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=300
#
Define a 'jkstatus' worker using status
3.1、当然也可以把workers.properties放在Tomcat/conf文件夹下,那么JK的配置文件mod_jk.conf就要稍加修改:
# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile
"C:/Program Files/Apache Software Foundation/Tomcat
5.5/conf/workers.properties"(在JK的配置文件中给出workers.properties的硬盘绝对路径)
4、再编辑mod_jk.conf,这个是JK的配置文件,内容如下:
#
指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile
"conf/workers.properties"
#
Where to put jk logs
JkLogFile
"logs/mod_jk.log"
#
Set the jk log level [debug/error/info]
JkLogLevel
info
#
Select the log format
JkLogStampFormat
"[%a %b %d %H:%M:%S %Y]"
#
JkOptions indicate to send SSL KEY
SIZE,
JkOptions
+ForwardKeySize +ForwardURICompat -ForwardDirectories
#
JkRequestLogFormat set the request format
JkRequestLogFormat
"%w %V %T"
#
将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount
/*.jsp tomcat1
JkMount
/servlet/* tomcat1
JkMount
/application/* tomcat1
JkMount
/*.do tomcat1
JkMount
/*Servlet tomcat1
JkMount
/*.action tomcat1
5、修改Apache/conf/httpd.conf文件,添加如下代码:
LoadModule jk_module modules/mod_jk.so
Include conf/mod_jk.conf
6、将Apache/conf/httpd.conf修改Apache的根目录:DocumentRoot "D:/workspace/tfttc/WebRoot"
经过上面几步,本来该是整合成功了,如果你访问http://localhost应该是可以访问了,并且如果你访问http://localhost/test.jsp也应该是正常的,但是,我的还是出了问题。当我启动Apache的时候总是提示错误,查看日志文件发现:httpd.exe: Syntax error on line 129 of F:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load F:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_jk.so into server:。
于是我没辙了。在网上去查了一下错误,都说是JK的版本问题,但是我也换了很多版本,还是没用。于是我关机,睡觉。结果第二天早晨起来的时候,启动Apache,没报错,于是我访问http://localhost发现可以访问,启动Tomcat,再访问http://localhost/test.jsp发现也是可以正常访问的。于是我很迷惑,是不是整合Apache和Tomcat之后要重启一下电脑呢?哈哈,如果你的情况也和我相似,不妨重启一下电脑看看,或许会“柳暗花明又一村”呢。
原来,我还想将Apache、Tomcat、PHP都整合到一起,以便服务器能同时支持JSP和PHP两种web技术,本来以为会多么的复杂和曲折,但是,等我做了以上工作之后,发现我的服务器都已经可以既支持PHP又支持JSP了。太高兴了。
我的安装顺序依次是:Apache、PHP、MySQL、Jdk、Tomcat、Jk。按照这样的步骤,你的服务器就可以既支持PHP又支持JSP了。
其实这些步骤可以分为三大部分:1、首先让你的服务器支持PHP,那么你就得安装Apache和PHP,安装和配置完成之后,你必须测试让你的服务器支持 PHP。(如果你要用到数据库,那么不妨把MySQL也安装上)2、安装和配置Jdk和tomcat,使你的Tomcat可以正常的支持JSP访问。3、 安装和配置Jk,这是关键的一步,因为经过前面两部分的工作,你的服务器已经可以单独支持PHP和JSP了,而这一部分——Jk插件的安装是为了让你的 Apache和Tomcat协同工作。成功之后,你的服务器就可以同时支持PHP和JSP了,比如你可以同时这样访问页 面:http://localhost、http://localhost/test.php、http://localhost/test.jsp了。
不过上面的步骤说起来简单,但是要做成功,它的道路是曲折的,过程是心酸的,只有我们自己才知道,但是,相信自己,没有什么是做不成的。
转自:http://blog.sina.com.cn/s/blog_497300720100a6ek.html