Solaris 9(intel x86)下从源代码安装Tomcat 5实战记录

发表于:2007-06-08来源:作者:点击数: 标签:
I.[b:1c511aa29d]从源码安装Tomcat5[/b:1c511aa29d] 1.JDK安装及设定 (1)使用Solaris9自带的JDK [code:1:1c511aa29d] #java-version javaversion1.4.1_02a JavaTM2RuntimeEnvironment,StandardEditionbuild1.4.1_02a-b01 JavaHotSpotTMClientVMbuild1.4.1_02

I.[b:1c511aa29d]从源码安装Tomcat 5[/b:1c511aa29d]

1.JDK安装及设定
(1)使用Solaris 9自带的JDK
[code:1:1c511aa29d]
# java -version
java version "1.4.1_02a"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02a-b01)
Java HotSpot(TM) Client VM (build 1.4.1_02a-b01, mixed mode)
[/code:1:1c511aa29d]
(2)修改/etc/profile,加入JAVA_HOME环境变量
[code:1:1c511aa29d]
JAVA_HOME=/usr/java
export JAVA_HOME
[/code:1:1c511aa29d]

2.[b:1c511aa29d]安装Apache Ant[/b:1c511aa29d]
(1)从[ur]http://ant.apache.org/bindownload.cgi[/url]下载ant的二进制包 apache-ant-1.6.1-bin.tar.gz
[code:1:1c511aa29d]
# gunzip < apache-ant-1.6.1-bin.tar.gz | tar xvf -
# mv apache-ant-1.6.1 /usr
# cd /usr
# ln -s apache-ant-1.6.1 ant
[/code:1:1c511aa29d]
(2)修改环境变量
[code:1:1c511aa29d]
ANT_HOME=/usr/ant
export ANT_HOME

PATH=$PATH:$ANT_HOME/bin
export PATH
[/code:1:1c511aa29d]

3.[b:1c511aa29d]编译Tomcat[/b:1c511aa29d]
(1)从[url]http://jakarta.apache.org/tomcat/tomcat-5.0-doc/build.xml[/url]下载编译所需的build.xml
建一个目录用来放下载的Tomcat源代码,把那个build.xml也放在这,为了方便,称这个目录为${tomcat.source}.

运行ant之前,需要知道ant先从Apache的CVS服务器中把Tomcat 5的源码checkout出来(需要先安装cvs),并且要下载一些编译时需要的lib文件,
这些lib文件默认是放在/usr/share/java下。如果/usr/share/java这个目录不存在,可以先创建,也可以在build.properties
文件中指定(如果需要网络代理的话,也需要在${tomcat.source}下建一个build.properties文件)。
build.properties的内容如下
[code:1:1c511aa29d]
# ----- Proxy setup -----
    # Uncomment if using a proxy server
    #proxy.host=proxy.domain
    #proxy.port=8080
    #proxy.use=on

    # ----- Default Base Path for Dependent Packages -----
    # Replace this path with the directory path where dependencies binaries
    # should be downloaded
    base.path=/usr/share/java
[/code:1:1c511aa29d]

(2)运行ant,编译
[code:1:1c511aa29d]
# cd ${tomcat.source}
# ant
[/code:1:1c511aa29d]

等ant成功运行后,在${tomcat.source}/jakarta-tomcat-5/build目录下可以找到编译好的Tomcat

4.[b:1c511aa29d]启动Tomcat[/b:1c511aa29d]

(1)添加环境变量
[code:1:1c511aa29d]
CATALINA_HOME=${tomcat.source}/jakarta-tomcat-5/build
export CATALINA_HOME
[/code:1:1c511aa29d]
(2)修改$CATALINA_HOME/conf/tomcat-users.xml,添加一管理用户
[code:1:1c511aa29d]
<role rolename="admin"/>
<role rolename="manager"/>
<user username="admin" password="password" roles="admin,manager"/>
[/code:1:1c511aa29d]
(3)运行$CATALINA_HOME/bin/startup.sh启动Tomcat
访问http://server-ip:8080/manager/status

5.[size=21:1c511aa29d][color=red:1c511aa29d][b:1c511aa29d]Run Tomcat as a daemon[/b:1c511aa29d][/color:1c511aa29d][/size:1c511aa29d]
(1)首先编译jsvc,需要先安装gclearcase/" target="_blank" >cc、autoconf、automake和m4
[code:1:1c511aa29d]
# cd ${tomcat.source}/jakarta-commons/daemon/src/native/unix
# chmod 744 support/buildconf.sh
# support/buildconf.sh
# ./configure
# make
[/code:1:1c511aa29d]
执行buildconf.sh可能会出现这样的错误
[code:1:1c511aa29d]
autoconf: /usr/local/bi/autom4te: not found
[/code:1:1c511aa29d]
这是因为autom4te脚本找不到perl解释器。解决办法是
[code:1:1c511aa29d]
# ln -s /usr/bin/perl /usr/local/bin/perl
[/code:1:1c511aa29d]
make时可能会报
[code:1:1c511aa29d]
make[1]:ar:Command not found
[/code:1:1c511aa29d]
这个需要把/usr/ccs/bin加到PATH环境变量中

编译成功后,就会在${tomcat.source}/jakarta-commons/daemon/src/native/unix目录下生成jsvc

(2)在${tomcat.source}/jakarta-commons/daemon/src/native/unix/native下有一个Tomcat5.sh可以用作启动脚本
[code:1:1c511aa29d]
# cp ${tomcat.source}/jakarta-commons/daemon/src/native/unix/native/Tomcat5.sh /etc/init.d/tomcat
# cd /etc/rc2.d
# ln ../init.d/tomcat S99tomcat
# cd ../rc0.d
# ln ../init.d/tomcat K03tomcat
[/code:1:1c511aa29d]

(3)添加运行tomcat的用户
[code:1:1c511aa29d]
# groupadd tomcat
# useradd -g tomcat -d ${tomcat.source} tomcat
# chown -R tomcat:tomcat ${tomcat.source}
[/code:1:1c511aa29d]

修改/etc/init.d/tomcat,主要是这几个变量
[code:1:1c511aa29d]
JAVA_HOME=/usr/java
CATALINA_HOME=${tomcat.source}/jakarta-tomcat-5/build
DAEMON_HOME=${tomcat.source}/jakarta-commons/daemon
TOMCAT_USER=tomcat
[/code:1:1c511aa29d]

用这个脚本启动和关闭tomcat
[code:1:1c511aa29d]
# /etc/init.d/tomcat start
# /etc/init.d/tomcat stop
[/code:1:1c511aa29d]

(4)重新启动机器,一切正常的话,tomcat就运行在后台了
[code:1:1c511aa29d]
# ps -ef|grep tomcat |grep -v grep
    tomcat   337   331  0 13:11:55 ?        0:29 /export/home/tomcat5/jakarta-commons/daemon/src/native/unix/jsvc -user tomcat -
    root   331     1  0 13:11:55 ?        0:00 /export/home/tomcat5/jakarta-commons/daemon/src/native/unix/jsvc -user tomcat -

[/code:1:1c511aa29d]

 C.Arthur 回复于:2004-02-14 15:41:21
不错,支持一下

 wolfg 回复于:2004-02-14 15:42:35
多谢版主

 C.Arthur 回复于:2004-02-14 15:44:04
这是应该做的,写的很好哇,很清楚,格式也好:)

 wolfg 回复于:2004-02-14 15:45:19
我还要继续努力,下一步准备试一试jakarta-tomcat-connector

 C.Arthur 回复于:2004-02-14 16:22:08
想法不错,其实你可以弄一个wolfg系列的软件调试文档

 wolfg 回复于:2004-02-14 16:36:04
[quote:1d9c638b20="C.Arthur"]想法不错,其实你可以弄一个wolfg系列的软件调试文档[/quote:1d9c638b20]呵呵,是啊

 多丽丝 回复于:2004-02-14 18:32:23
楼主辛苦啦,写的不错哦!

 wolfg 回复于:2004-02-19 16:09:12
[quote:971371f582="wolfg"]我还要继续努力,下一步准备试一试jakarta-tomcat-connector[/quote:971371f582]
请看[b:971371f582][url=http://bbs.chinaunix.net/forum/6/20040219/263220.html]用mod_jk2整合Tomcat 5与Apache 2.0.48(TCP/IP Socket方式) [/url][/b:971371f582]

 wolfg 回复于:2004-02-20 12:38:12
请看续二[b:e4802b081c][url=http://bbs.chinaunix.net/forum/6/20040220/263825.html]Apache + Tomcat + Load Balancing [/url][/b:e4802b081c]

 pengtao_hlp 回复于:2004-02-20 14:18:57
tomcat是什么东西呀???

 wolfg 回复于:2004-02-20 14:34:05
[quote:cca3e3bb93="pengtao_hlp"]tomcat是什么东西呀???[/quote:cca3e3bb93]
Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies.

 blessfish 回复于:2004-04-11 23:53:37
请问第三个步骤所说的拷贝一部分lib的文件到source目录下,应该是哪些目录哪?我编译的时候报告“Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher”,应该是差这些文件,但是具体是哪些哪?请告知,谢谢!

原文转自:http://www.ltesting.net