Ubuntu12.04下 mod_jk整合 java項目與php項目
由於項目的需要,需要把php和java項目同時採用80連接埠進行發布,本文採用mod_jk進行不同項目的整合。把原來位於apatch中的php項目與tomcat下啟動並執行java項目進行整合發布。
整合的平台與軟體版本:
- OS:Ubuntu12.04
- tomcat6.0.16
- jdk1.7.0_03
- apache2.2.22
- mod_jk
- java項目位於:/home/hkr/project/sd/tomcat-6.0.14/webapps/myjavaproject 中;php項目位於/var/www/myphpproject 中
主要步驟如下:
- tomcat6.0.16安裝:http://tomcat.apache.org/直接下載解壓即可
- jdk1.7.0_03安裝:參考網路安裝jdk的方法(http://blog.csdn.net/ritterliu/article/details/7525412)
- apache2.2.22安裝:$sudo apt-get install apache2
- mod_jk的安裝:$sudo apt-get install libapache2-mod-jk
- 配置mod_jk,mod_jk的配置主要有以下三個地方:
- 配置workers.properties(串連到Tomcat的檔案)sudo gedit /etc/libapache2-mod-jk/workers.properties,配置下面參數:
- workers.tomcat_home=/home/hkr/project/sd/tomcat-6.0.14#tomcat位置
- workers.java_home=/usr/lib/jvm/jdk1.7.0_03#java_home位置
- worker.list=ajp13_worker#自訂命名即可
- worker.ajp13_worker.port=8009 #用8080會報錯
- worker.ajp13_worker.host=192.168.1.102#本機ip地址
- worker.ajp13_worker.type=ajp13
- worker.ajp13_worker.lbfactor=1
- worker.loadbalancer.type=lb
- worker.loadbalancer.balance_workers=ajp13_worker
- apache2中 apache2.conf配置:$gedit /etc/apache2/apache2.conf,在檔案最後空白處加上以下內容:
- AddType application/x-httpd-php .php .htm .html
serverName 192.168.1.102
#JkWorkersFile /etc/libapache2-mod-jk/workers.properties(這個需要注釋,加上會出現apache啟動時報錯: JkWorkersFile only allowed once)
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
- apache2中 default的配置,$gedit /etc/apache2/sites-available/default, 在之前增加:
- JkMount /*.jsp ajp13_worker(5.1中worker.list的值)
- JkMount /*.do ajp13_worker
- ....(其他java項目項目的代理,如果java項目在一個工程下,可以配置JkMount /java項目名/* ajp13_worker,如果配置/* 會把所有php的範圍也代理到tomcat中,導致php項目無法訪問,因此這裡只需要配置tomcat下工程的訪問路勁即可)
- 配置完成後$sudo /etc/init.d/apache2 reload,然後$sudo /etc/init.d/apache2 restart,即可通過ip進行直接存取tomcat和php的項目。
以上內容已在本機virtualBox中測試通過,歡迎交流:)