Tomcat-5.5.7 + Apache-2.0.46 + mod_jk-2.0.4整合配置

發表于:2007-06-08來源:作者:點擊數: 標簽:
原文出處:http://blog.beijingnet.com/index.php?op=ViewArticleblogId=1 安裝環境: OS:RedhatEnterpriseAS3 apahce:使用系統自帶httpd-2.0.46,使用其它版本的redhat自帶的apache安裝過程也一樣。 Tomcat:Tomcat-5.5.7 jdk:mod_jk:2.0.4 參考: http://w

原文出處:http://blog.beijingnet.com/index.php?op=ViewArticle&articleId=81&blogId=1

安裝環境: 

OS:Redhat Enterprise AS 3 
apahce:使用系統自帶httpd-2.0.46,使用其它版本的redhat自帶的apache安裝過程也一樣。 
Tomcat:Tomcat-5.5.7 
jdk:mod_jk:2.0.4 
參考: 
http://www.reliablepenguin.com/clients/misc/tomcat/ http://www.pixelfreak.net/howto/apache2_jk2_tomcat/socket.html http://www.csse.uwa.edu.au/~ryan/tech/mod_jk2.html http://www.edong.org/main/content/view/386/38/ http://www.pixelfreak.net/howto/apache2_jk2_tomcat/socket.html http://www.cn-java.com/target/news.php?news_id=3043  



1. 安裝apache
   系統自帶,無須安裝。需要注意的是需要安裝httpd開發包,用于編譯mod_jk.
   查看是否安裝httpd-develop
   #rpm -qa|grep httpd-devel
   httpd-devel-2.0.46-38.ent
   如果出現以上信息說明httpd開發包已安裝,如果未安裝請從redhat第三張盤中安裝。
   

2、安裝jdk
   從java.sun.com下載jdk-1_5_0_01-linux-i586-rpm.bin,tomcat5需要jdk5的支持。
   下載后:
   #chmod 755 jdk-1_5_0_01-linux-i586-rpm.bin
   #rpm -ivh dk-1_5_0_01-linux-i586.rpm
   在/etc/profile文件中加入:
   JAVA_HOME=/usr/java/jdk1.5.0_01
   export JAVA_HOME
   PATH=$PATH:/usr/java/jdk1.5.0_01/bin
   export PATH
   export CATALINA_HOME=/usr/local/tomcat
   export TOMCAT_HOME=/usr/local/tomcat


3.安裝Tomcat
   #wget http://apache.justdn.org/jakarta/tomcat-5/v5.5.7/bin/jakarta-tomcat-5.5.7.tar.gz
   #tar zxvf jakarta-tomcat-5.5.7.tar.gz
   #mv jakarta-tomcat-5.5.7 /usr/local/tomcat

4、編譯和設置mod_jk
   此時注意重新登錄服務器使環境變量生效。
   #wget http://apache.justdn.org/jakarta/tomcat-connectors/jk2/jakarta-tomcat-connectors-jk2-src-current.tar.gz     
   #tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz    
   #cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
   #./configure --with-apxs2=/usr/sbin/apxs --with-jni --with-apr-lib=/usr/lib
   #vi server/apache2/Makefile
   將:LIBTOOL=/bin/sh /var/www/build/libtool --silent
   改為:LIBTOOL=/usr/bin/libtool
   將:
   fdef APR_LIBDIR_LA
   JK_LDFLAGS=-L${APACHE2_LIBDIR} -lcrypt
   else
   JK_LDFLAGS=-lcrypt ${APR_LIBS}
   endif
   改為:
   ifdef APR_LIBDIR_LA
   JK_LDFLAGS=-L${APACHE2_LIBDIR} -lcrypt
   else
   JK_LDFLAGS=-lcrypt ${APR_LIBS} -lapr-0 -laprutil-0 -lgdbm -ldb-4.1 -lexpat
   endif

   如果不修改以上內容,將出現以下錯誤:
   INFO: APR not loaded, disabling jni components: java.io.IOException: java.lang.UnsatisfiedLinkError:      
   /usr/lib/httpd/modules/libjkjni.so: 
   /usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno
   或者:
   INFO: APR not loaded, disabling jni components: java.io.IOException: java.lang.UnsatisfiedLinkError:    
   /usr/lib/httpd/modules/libjkjni.so: 
   /usr/lib/httpd/modules/libjkjni.so: undefined symbol: apr_md5_final
   #make
   #libtool --finish /usr/lib/httpd/modules
   #cp ../build/jk2/apache2/mod_jk2.so ../build/jk2/apache2/libjkjni.so /usr/lib/httpd/modules/
   mod_jk安裝完畢。

6、配置tomcat
   #vi vi /usr/local/tomcat/bin/catalina.sh 
   # Get standard environment variables
   PRGDIR=`dirname "$PRG"`
   CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
   if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
   . "$CATALINA_HOME"/bin/setenv.sh
   fi
   # 添加以下行
   serverRoot=/etc/httpd
   export serverRoot

   #vi /usr/local/tomcat/conf/jk2.properties 
   handler.list=apr,request,channelJni
   channelUnix.file=/usr/local/tomcat/work/jk2.socket
   serverRoot=/etc/httpd
   apr.NativeSo=/usr/lib/httpd/modules/libjkjni.so

   #vi /usr/local/tomcat/conf/server.xml 
   在</Engine>前加入
  <Host name="www.abc.com" debug="1" appbase="/var/www/abc" unpackwars="true"> 
    <Context path="" docBase="" debug="1"/> 
 </Host> 
   配置其它虛擬主機與此同。 
   
7、設置虛擬主機
    比如,我現在有虛擬主機 www.abc.com 希望把jsp和servlet都轉到tomcat去

    在 /etc/httpd/conf/ 下面創建workers2.properties,內容如下:
    [shm]
    file=/var/log/httpd/shm.file
    size=1048576


    # Example socket channel, explicitly set port and host.
    [channel.socket:localhost:8009]
    port=8009
    host=127.0.0.1


    # Example UNIX domain socket
    [channel.un:/usr/local/tomcat/work/jk2.socket]
    tomcatId=localhost:8009
    debug=0


    # define the worker
    [ajp13:localhost:8009]
    #channel=channel.un:/usr/local/tomcat/work/jk2.socket
    # To use the TCP/IP socket instead, just comment out the above
    # line, and uncomment the one below
    channel=channel.socket:localhost:8009


    # Announce a "status" worker
    [status:status]

    [uri:/status/*]
    worker=status:status

    # Uri mapping
    [uri:/jsp-examples/*]


    在/etc/httpd/conf/httpd.conf里面配置:
    #tomcat
    LoadModule jk2_module modules/mod_jk2.so
    JkSet config.file /etc/httpd/conf/workers2.properties

    #把下面這段放到VirtualHost之前,可以從全局避免用戶用apache訪問WEB-INF目錄。
    
    <Directory ~ "/WEB-INF/">
     Order allow,deny
     Deny from all
    </Directory>
    

    #典型的VirtualHost配置樣本
    NameVirtualHost 1.2.3.4 #(1.2.3.4你的服務器IP)
    <VirtualHost 1.2.3.4>
    ServerName www.abc.com
    DocumentRoot /var/www/abc
    DirectoryIndex index.htm index.html default.htm index.php index.jsp
    <Location ~ "/*.jsp|/*/servlet/*>
    JkUriSet worker ajp13:localhost:8009
    </Location>
    ErrorLog logs/www.abc.com-err_log
    CustomLog logs/www.abc.com-aclearcase/" target="_blank" >cc_log common
    </VirtualHost>
    
    這樣就可以為每個不同的虛擬主機分別指定使用或者不使用jsp功能。

8、啟動、測試
   #service httpd start
   #/usr/local/tomcat/bin/startup.sh 
   瀏覽器里輸入
   http://1.2.3.4/jsp-examples/
   http://1.2.3.4/status/

   如果沒有問題則說明安裝成功。


歡迎與我交流
qq:138722
e-mail:xiaowei@beijingnet.com

 flighttop 回復于:2005-03-10 02:20:11
Several products, such as Blackboard Learning System, is built on this model. It is very good. Thanks!

 斜月三星 回復于:2005-03-10 11:44:29
太感謝了,我正在發愁這個問題呢!用別的方法不行??戳撕芏辔恼铝?。一會兒我就去試一試。另外,Apache怎么升級呢?我怕影響里面的設置,沒敢動。

 嘻哈標明 回復于:2005-03-11 14:08:02
運行到./configure --with-apxs2=/usr/sbin/apxs --with-jni --with-apr-lib=/usr/lib 時為何出configure: error: Invalid location for apxs: '/usr/sbin/apxs'
呢?

 wolfg 回復于:2005-03-11 15:28:42
[quote:3ca1f3fecf="嘻哈標明"]運行到./configure --with-apxs2=/usr/sbin/apxs --with-jni --with-apr-lib=/usr/lib 時為何出configure: error: Invalid location for apxs: '/usr/sbin/apxs'
呢?[/quote:3ca1f3fecf]你的apxs不在/usr/sbin/下吧

 wolfg 回復于:2005-03-11 15:29:50
[b:8891894ec0]JK2 is officially unsupported![/b:8891894ec0]

http://jakarta.apache.org/tomcat/connectors-doc/

JK2 has been put in maintainer mode and no further development will take place. The reason for shutting down JK2 development was the lack of developers interest. Other reason was lack of users interest in adopting JK2, caused by configuration complexity when compared to JK.

JK2 will have it's successor within core Apache2.1/2.2 distribution. We have developed new proxy_ajp that is an addition to the mod_proxy and uses Tomcat's AJP protocol stack. It is developped in httpd-2.1 and integrated in it. We have also developed a new proxy_balancer module for load balancing http and ajp protocol stacks.

 嘻哈標明 回復于:2005-03-11 20:26:58
[quote:48570fad0a="wolfg"]愕腶pxs不在/usr/sbin/下吧[/quote:48570fad0a]

不 好意思,寫錯了,現在我改為 ./configure --with-apxs2=/usr/java/httpd2/bin/apxs --with-java-home=/usr/java/j2sdk1.4.2_07
還是出錯啊。。。如下:

checking for mkdir... /bin/mkdir
no apxs given
need to check for Perl first, apxs depends on it...
checking for perl... /usr/bin/perl
configure: error: can't locate libapr
[root@localhost native2]#

 嘻哈標明 回復于:2005-03-14 23:57:57
上面這步已經自己解決,找不到LIBAPE。在本站查了相關文章得知需安裝libapr和libaprutil。但已經安裝了又出了個問題,我完成根據樓上所說的做,到修改server/apache2/Makefile 后 mark就出現了下面的錯,/usr/bin/ld: cannot find -ldb-4.1
collect2: ld returned 1 exit status
make[1]: *** [../../../build/jk2/apache2/libjkjni.la] 錯誤 1
make[1]: Leaving directory `/root/www/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/server/apache2'
make: *** [jk2-build] 錯誤 1
[root@localhost native2]#
。。。。應該又少了ldb,這個是啥 文件,在哪下載呢?

 嘻哈標明 回復于:2005-03-15 01:16:23
ldb-4.1,,,我改成了4.2就可以過了。 http://1.2.3.4/jsp-examples/
  http://1.2.3.4/status/ 也都能訪問。只不過不配置還不好?,F在比如說http://localhost/jsp-examples/index.jsp能正常訪問,但http://localhost/jsp-examples/index.htm不能訪問。我還在找原因。

 擋泥板 回復于:2005-03-15 10:49:46
我的老是不成功,提示我:configure: error: Apache 1.3 requires apr to built from source, use --with-apr and --with-apr-util

 vulcan 回復于:2005-03-15 14:54:57
我在運行到connector 的make這步時有如下的錯誤libtool: link: `../../../build/jk2/apache2/jk_channel_apr_socket.lo' is not a valid libtool object
make[1]: *** [../../../build/jk2/apache2/mod_jk2.la] Error 1
make[1]: Leaving directory `/usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/server/apache2'
make: *** [jk2-build] Error 1
哪錯了 ???

 vulcan 回復于:2005-03-15 15:09:56
我在做到vi makefile 之后的make那步出現了下面的問題libtool: link: `../../../build/jk2/apache2/jk_channel_apr_socket.lo' is not a valid libtool object
make[1]: *** [../../../build/jk2/apache2/mod_jk2.la] Error 1
make[1]: Leaving directory `/usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/server/apache2'
make: *** [jk2-build] Error 1
為什么?

 嘻哈標明 回復于:2005-03-15 16:35:04
我現在重新安裝了FC3了出錯也和樓上的一樣。希望高手出手幫助。謝謝

 vulcan 回復于:2005-03-15 20:56:29
把以前的安裝刪掉重來好像就行了,我想可能的原應是我前面幾步沒有完全按照文檔來。

 嘻哈標明 回復于:2005-03-15 21:37:25
我是照抄了(當然有些路徑是要改的),系統都重新安裝了N次,我都有些擔心硬盤會受不了呢?

 li2002 回復于:2005-04-19 16:55:46
出現問題??!
我是按照樓主的步驟做的。做
http://xxx/status/
有正常信息
在做
http://xxx/jsp-examples/

http://xxx/jsp-examples/index.jsp
都出錯(503錯)
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
請問是什么沒做???
我的jk2-connect沒改make也正常的。

 li2002 回復于:2005-04-19 17:21:55
知道了,原來tomcat有個默認端口8080被我系統用作代理端口了,把它改成其他的就行了。
終于看到了成功的畫面了。哈哈~~~~

 yxg0512 回復于:2005-04-20 14:24:53
no apxs given
need to check for Perl first, apxs depends on it...
checking for perl... /usr/bin/perl
building connector for "apache-2.0"
checking checking for apache13...... not provided
checking checking for apache20...... not provided
checking checking for iis...... not provided
checking checking for iPlanet...... not provided
checking for tomcat33 location... not provided
checking for tomcat40 location... not provided
checking for tomcat41 location... not provided
checking for JDK location (please wait)... checking Try to guess JDK location... configure: error: can't locate a valid JDK location

 yxg0512 回復于:2005-04-25 13:37:59
[quote:fca61c5c92="li2002"]知道了,原來tomcat有個默認端口8080被我系統用作代理端口了,把它改成其他的就行了。
終于看到了成功的畫面了。哈哈~~~~[/quote:fca61c5c92]

兄弟 在哪里改的?  我也出現跟你同樣的情況了   :(

 er 回復于:2005-04-27 18:46:27
整了一天沒成功,搜到這段話,真是暈
[quote:11fc65fa1c]在整合的過程中要注意的是,由于apache、mod_jk2均依賴于apr,所以三者的版本要注意匹配,不要一味求新,不然很容易出現“undefined symbol:apr_socket_send”之類的錯誤。如果是安裝了redhat9和fedora自帶的apache,mod_jk2用2.0.2的版本編譯就好,用2.0.4的版本編譯會有問題。[/quote:11fc65fa1c]

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97