歡迎您光臨本站 註冊首頁

Linux下apahe和tomcat的整合

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Linux下apahe和tomcat的整合

http://www.syitren.com/bbs/thread-3033-1-1.html
轉載請註明!

Apache和Tomcat同是Apache基金會下面的兩個項目。

一個是HTTP WEB伺服器,另一個是servlet容器(servlet container)。在我們生產的環境中,往往需要Apache做前端伺服器,Tomcat做後端伺服器。此時我們就需要一個連接器,這個連接器的作用就是把所有Servlet/JSP的請求轉給Tomcat來處理。在Apache2.2之前,一般有兩個組件可選擇:mod_jk和mod_jk2。後來 mod_jk2沒更新了,轉而更新mod_jk,所以現在一般都使用mod_jk做Apache和Tomcat的連接器。
不過,自從Apache2.2出來后,你又多了種選擇,那就是proxy-ajp。大家知道Apache里的proxy模塊,可以實現雙向代理功能,功能非常強大。其實從連接器的實現原理上來說,用proxy模塊來實現是非常自然的。proxy模塊的功能無非就是把相關的請求發給特定的主機再返回結果。那連接器的功能需求就是要把所有對Servlet/JSP的請求都轉給後台的Tomcat。

本文所用到的軟體:
jdk-6u7-linux-i586-rpm.bin
mysql-5.0.67.tar.gz
apr-1.3.3.tar.gz
apr-util-1.3.4.tar.gz
httpd-2.2.9.tar.gz
apache-tomcat-6.0.14.tar.gz
php-5.2.6.tar.gz

1、JDK安裝
# pwd
/usr/local
# chmod a+x jdk-6u7-linux-i586-rpm.bin
# ./jdk-6u7-linux-i586-rpm.bin
# ln -s /usr/java/jdk1.6.0_07 /usr/local/java
設置環境變數
# vi /etc/profile
末尾增加如下內容
JAVA_HOME=/usr/java/jdk1.6.0_07
CLASSPATH=/usr/java/jdk1.6.0_07/lib/dt.jar:/usr/java/jdk1.6.0_07/lib/tools.jar
PATH=/usr/java/jdk1.6.0_07/binPATH
export PATH JAVA_HOME CLASSPATH
# source /etc/profile
# bin/java –version  
查看java版本,如果是1.6的,就是說明安裝成功了。

2、編譯安裝mysql
#useradd mysql mysql
#tar -zxvf mysql-5.0.67.tar.gz
#cd mysql-5.0.67
#./configure -prefix=/opt/mysql -with-charset=gbk -with-extra-charsets=all
#make
#make install
#cp support-files/my-medium.cnf /etc/my.cnf
#/opt/mysql/scripts/mysql_install_db --user=mysql  
//初試化表並且規定用mysql用戶來訪問。初始化表以後就開始給mysql和root用戶設定訪問許可權
設置用戶許可權
#chown -R mysql.mysql /opt/mysql
#chown -R mysql.mysql /opt/mysql/var
啟動mysql服務
#/opt/mysql/bin/mysqld_safe  --user=mysql  &
設置資料庫管理員密碼
#/opt/mysql/bin/mysqladmin  -u  root  password  『123456』
用新設置的密碼登陸資料庫驗證一下
#/opt/mysql/bin/mydql  -u  root  -p
mysql>showdatabases;

3.安裝apr
# tar -zxvf apr-1.3.3.tar.gz
# cd apr-1.3.3
# ./configure  --prefix=/usr/local/apr
# make
# make install
# tar -zxvf apr-util-1.3.4.tar.gz
# cd apr-util-1.3.4
# ./configure  --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install

4、安裝Apache。
# tar xzvf httpd-2.2.9.tar.gz
# cd httpd-2.2.9
#./configure --prefix=/usr/local/apache
--enable-so --enable-rewrite --enable-proxy
--enable-proxy-ajp --enable-proxy-balancer  
# make
# make install
# /usr/local/apache/bin/apachectl start    //啟動APACHE
#/usr/local/apache/bin/httpd -l
看看是否有proxy-ajp這個模塊
如果有這個模塊證明proxy-ajp模塊安裝成功,可以進行與tomcat的結合了。

5、安裝php
#tar zxvf php-5.2.6.tar.gz
#cd php-5.2.6
#./configure --prefix=/opt/php --with-apxs2=/opt/www/bin/apxs \
--with-mysql=/opt/mysql --with-config-file-path=/opt/php
#make
#make install
#cp php.ini-dist /opt/php/php.ini
編輯apache的主配置文件,增加對PHP的支持
添加一行  AddType application/x-httpd-php .php
重啟apache服務
#/opt/www/bin/apachectl  restart
新建php測試網頁,vi /opt/www/htdocs/test/test.php
然後在瀏覽器中測試一下
http://IP/test.php

6、安裝Tomcat。
# cp apache-tomcat-6.0.14.tar.gz /usr/local/
# cd /usr/local/
# tar xzvf apache-tomcat-6.0.14.tar.gz
# ln -s apache-tomcat-6.0.14 tomcat
#vi /usr/local/tomcat/bin/catalina.sh
加入一行:
JAVA_HOME=/usr/java/jdk1.6.0_07
# /usr/local/tomcat/bin/startup.sh
啟動服務后訪問本地的8080埠可以看到對應apache tomcat頁面了

7、Tomcat 與Apache 的整合
在apache中啟用虛擬主機(需要dns的支持)
#vi /opt/www/conf/httpd.conf
去掉Include conf/extra/httpd-vhosts.conf前面的#號
#vi /opt/www/conf/extra/httpd-vhosts.conf
  添加
  <VirtualHost 192.168.1.100:80>
     DocumentRoot "/opt/www/htdocs/aaa"
     ServerName www.syitren.com
     ProxyPass / ajp://127.0.0.1:8009/
     ProxyPassReverse / ajp://127.0.0.1:8009/
  </VirtualHost>
  <VirtualHost 192.168.1.100:80>
     DocumentRoot "/opt/www/htdocs/bbb"
     ServerName bbs.syitren.com
  </VirtualHost>
tomcat虛擬主機
# vi /usr/local/tomcat/conf/server.xml
server.xml中這麼加:
第一種方法此方法也適合windows下用)
<Host name="www.syitren.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"  xmlNamespaceAware="false">
     <Alias>mail.aaa.com</Alias> 要注意就是這。這是別名的.
     <Context path="" docBase="/usr/local/apache/htdocs/" debug="0" reloadable="true" crossC/>
     <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www_5sai_log." suffix=".txt"
timestamp="true"/>
      </Host>
第二種方法:
<Host name="www.syitren.com" debug="0" appBase="/usr/local/tomcat/gc/" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="."/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  prefix="test_5sai_access_log."
suffix=".txt" pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="test_5sai_log." suffix=".txt" timestamp="true"/>
</Host>

然後把PHP程序放在/opt/www/htdocs/bbb/中,把JSP程序放在/opt/www/htdocs/aaa/中,分別測試一下。



linux tomcat開機自啟動
vi /etc/rc.d/rc.local
在裡面加入如下代碼:
export JDK_HOME=/usr/java/jdk1.6.0_07
export JAVA_HOME=/usr/java/jdk1.6.0_07
/usr/local/tomcat/bin/startup.sh
《解決方案》

用JSVC作為系統服務來啟動

[火星人 ] Linux下apahe和tomcat的整合已經有341次圍觀

http://coctec.com/docs/service/show-post-22640.html