I.从源码安装Tomcat 5
1.JDK安装及设定
(1)使用Solaris 9自带的JDK
# 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)
(2)修改/etc/profile,加入JAVA_HOME环境变量
JAVA_HOME=/usr/java
export JAVA_HOME
2.安装Apache Ant
(1)从[ur]http://ant.apache.org/bindownload.cgi下载ant的二进制包 apache-ant-1.6.1-bin.tar.gz
# 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
(2)修改环境变量
ANT_HOME=/usr/ant
export ANT_HOME
PATH=$PATH:$ANT_HOME/bin
export PATH
3.编译Tomcat
(1)从http://jakarta.apache.org/tomcat/tomcat-5.0-doc/build.xml下载编译所需的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的内容如下
# ----- 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
(2)运行ant,编译
# cd ${tomcat.source}
# ant
等ant成功运行后,在${tomcat.source}/jakarta-tomcat-5/build目录下可以找到编译好的Tomcat
4.启动Tomcat
(1)添加环境变量
CATALINA_HOME=${tomcat.source}/jakarta-tomcat-5/build
export CATALINA_HOME
(2)修改$CATALINA_HOME/conf/tomcat-users.xml,添加一管理用户
<role rolename="admin"/>;
<role rolename="manager"/>;
<user username="admin" password="password" roles="admin,manager"/>;
(3)运行$CATALINA_HOME/bin/startup.sh启动Tomcat
访问http://server-ip:8080/manager/status
5.[size=21][color=red]Run Tomcat as a daemon[/color][/size]
(1)首先编译jsvc,需要先安装gcc、autoconf、automake和m4
# cd ${tomcat.source}/jakarta-commons/daemon/src/native/unix
# chmod 744 support/buildconf.sh
# support/buildconf.sh
# ./configure
# make
执行buildconf.sh可能会出现这样的错误
autoconf: /usr/local/bi/autom4te: not found
这是因为autom4te脚本找不到perl解释器。解决办法是
# ln -s /usr/bin/perl /usr/local/bin/perl
make时可能会报
make[1]:ar:Command not found
这个需要把/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可以用作启动脚本
# 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
(3)添加运行tomcat的用户
# groupadd tomcat
# useradd -g tomcat -d ${tomcat.source} tomcat
# chown -R tomcat:tomcat ${tomcat.source}
修改/etc/init.d/tomcat,主要是这几个变量
JAVA_HOME=/usr/java
CATALINA_HOME=${tomcat.source}/jakarta-tomcat-5/build
DAEMON_HOME=${tomcat.source}/jakarta-commons/daemon
TOMCAT_USER=tomcat
用这个脚本启动和关闭tomcat
# /etc/init.d/tomcat start
# /etc/init.d/tomcat stop
(4)重新启动机器,一切正常的话,tomcat就运行在后台了
# 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 -
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
引用:原帖由 "C.Arthur"]想法不错,其实你可以弄一个wolfg系列的软件调试文档 发表: 呵呵,是啊
多丽丝 回复于:2004-02-14 18:32:23
楼主辛苦啦,写的不错哦!
wolfg 回复于:2004-02-19 16:09:12
引用:原帖由 "wolfg"]我还要继续努力,下一步准备试一试jakarta-tomcat-connector 发表:
请看[url=http://bbs.chinaunix.net/forum/6/20040219/263220.html]用mod_jk2整合Tomcat 5与Apache 2.0.48(TCP/IP Socket方式)
wolfg 回复于:2004-02-20 12:38:12
请看续二[url=http://bbs.chinaunix.net/forum/6/20040220/263825.html]Apache + Tomcat + Load Balancing
pengtao_hlp 回复于:2004-02-20 14:18:57
tomcat是什么东西呀???
wolfg 回复于:2004-02-20 14:34:05
引用:原帖由 "pengtao_hlp"]tomcat是什么东西呀??? 发表:
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”,应该是差这些文件,但是具体是哪些哪?请告知,谢谢!
|