rwewqe 发表于 2014-11-5 13:24:37

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 ajp13
    worker.list=worker1
    # Set properties for worker1
    worker.worker1.type=ajp13
    worker.worker1.host=localhost
    worker.worker1.port=8009
    worker.worker1.lbfactor=1

mod_jk.conf内容:(myproject 为jsp的工程名)




    LoadModule jk_module modules/mod_jk.so
    JkWorkersFile conf/workers.properties
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    JkOptions +ForwardKeySize +ForwardURICompatUnparsed +ForwardDirectories
    JkRequestLogFormat "%w %V %T"
      
    JkMount /servlet/* worker1
    JkMount /*.jsp worker1
    JkMount /*.action worker1
    JkMount /*.do worker1
    JkMount /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]
查看完整版本: windows+php5.5+apache2.4+tomcat+mod_jk配置