windows+php5.5+apache2.4+tomcat+mod_jk配置
通常情况下apache运行的是80端口,比如apache启动后运行localhost:80就可以出现It works页面,这里的80也可以不写,会默认的。而tomcat启动时默认的端口是8080端口,需要在localhost后面加上8080,但这样比较不专业,域名还带端口,因此我们可以在tomcat的server.xml修改为80。但此时的问题出来了,当已有一个php写的项目在使用apache作为服务时,我们如何将让有php写的项目和jsp写的项目同时运行起来呢,这里就需要用到插件mod_jk,它可以将jsp要访问的url投入到tomcat中由tomcat来进行处理。
Tomcat直接在官网下载解压就可以了(http://tomcat.apache.org/),当然启动tomcat的前提是你安装了jdk,必将JAVA_HOME=jdk安装目录 放在你的环境变量中了,这个都比较简单,我们主要讲解apache2.4和mod_jk的配置。
一:apache2.4及php5.5及mysql的配置
这部分我也不想多讲可以参考:http://jingyan.baidu.com/article/9faa723152c5d6473d28cb47.html
二:mod_jk配置
首先需要从官网上下载apache版本所对应的mod_jk.so 文件放在apache的modules目录下面
然后在conf目录下面建立两个文件为workers.properties和mod_jk.conf
workers.properties内容:
workers.tomcat_home="D:/apache-tomcat7"workers.java_home="D:/Tools/java/jdk"# Defining a worker named worker1 and of type ajp13worker.list=worker1# Set properties for worker1worker.worker1.type=ajp13worker.worker1.host=localhostworker.worker1.port=8009worker.worker1.lbfactor=1
mod_jk.conf内容:(myproject 为jsp的工程名)
LoadModule jk_module modules/mod_jk.soJkWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.logJkLogLevel infoJkLogStampFormat "[%a %b %d %H:%M:%S %Y]"JkOptions +ForwardKeySize +ForwardURICompatUnparsed +ForwardDirectoriesJkRequestLogFormat "%w %V %T"JkMount /servlet/* worker1JkMount /*.jsp worker1JkMount /*.action worker1JkMount /*.do worker1JkMount /myproject/* worker1
注意:JkOptionszhong 中为ForwardURICompatUnparsed不是ForwardURICompat,否则会出现乱码
然后在apache的conf目录下httpd.conf中添加:
Include conf/mod_jk.conf
三:tomcat配置
将tomcat中server.xml中appBase改名指向你在apache配置工程所存放的位置就可以了。
这样你在浏览器中访问jsp的工程时,apache会自动将你的访问投递到tomcat中进行处理,这样就能实现php和jsp都无需写端口号而可以被访问。
备注:参考文献也有配置virtualHost, 这个可能是当tomcat所使用的端口号不能为外网访问时所做的,这里我没有研究,但是也正常工作了。
参考文献:
1:http://jingyan.baidu.com/article/9faa723152c5d6473d28cb47.htmlwin7(64位)php5.5-Apache2.4-mysql5.6环境安装
2: http://wenku.baidu.com/view/9288fa2058fb770bf78a55cf.html?re=viewwindows下apache+tomcat+php+mysql+zend optimizer
3:http://adaishu.blogspot.com/2008/08/apachetomcatstrutsphpmysql-apache.html
4:http://www.iteye.com/topic/80667 Apache+Tomcat+Php+Mysql的集成
5:http://www.linuxquestions.org/questions/linux-software-2/example-servlets-not-working-with-mod_jk-apache2-webserver-and-tomcat6's-web-container-692783/