本来对rpm安装的java类程序没有多大好感,不过现在需要在后台运行tomcat的service,所以今天就捣鼓了一番:
安装:
# yum install tomcat5
过程依赖:
tomcat5-common-lib
tomcat5-server-lib
tomcat5-jsp-2.0-api
tomcat5-servlet-2.4-api
tomcat5-jasper
一个tomcat被分成了这么多lib和api包,是为什么呢,查看其中一个包结构即知:
$ rpm -ql tomcat5-common-lib
/usr/share/java/tomcat5
...
/usr/share/maven2/poms/JPP.tomcat5-naming-factory.pom
/usr/share/maven2/poms/JPP.tomcat5-naming-resources.pom
这些包都是类似的结构,包含了maven2的pom,这样就能被同样是rpm安装的maven2重用。
启动服务:
安装完毕就可以直接使用了,将项目copy至/usr/share/tomcat5/webapps/下,然后执行:
# service tomcat5 start
有时,我们需要多个服务器,开发、测试、发布...,想要做到互不影响只能从copy一份服务器,并修改conf下的server.xml中端口的设置; 那对于rpm安装的tomcat5,有没有更好的办法呢?
分析servcie:
http://leitelyaya.iteye.com/blog/786192
分析后得知,tomcat5 service依赖于两个配置,
- /etc/tomcat5/tomcat5.conf,用于全局配置
- /etc/sysconfig/tomcat5,用于此服务配置
依据/etc/sysconfig/tomcat5文件中的解释,创建一个新的服务,需要:
1. 在/etc/init.d/下创建tomcat5的链接文件。创建一个test服务器:
# ln -s /etc/init.d/tomcat5 /etc/init.d/tomcat5_test
2. 在/etc/sysconfig/下创建与服务器同名的配置文件:
# cd /etc/sysconfig
# cp tomcat5 tomcat5_test
3. 加入特定配置至tomcat5_test中,详细配置参照/etc/tomcat5/tomcat5.conf:
CATALINA_HOME="/usr/local/tomcat5_test" # Catalina地址
JASPER_HOME="/usr/local/tomcat5_test"
CATALINA_TMPDIR="/usr/local/tomcat5_test/temp"
JAVA_ENDORSED_DIRS="/usr/local/tomcat5_test/common/endorsed"
CATALINA_PID=/var/run/tomcat5_test.pid # service标识
CONNECTOR_PORT=8081 #service端口
注意:Catalina地址没有存在,是在service的start自动创建的。
4.
启动服务:
# service tomcat5 start
Starting tomcat5_test: /usr/local/tomcat5_test does not exist, creating
cp: cannot stat `/var/cache/tomcat5/work/*': No such file or directory
[确定]
启动成功,这样,可以使用tomcat5_test作为单独的test服务器了。
相关扩展:
1. /usr/local/tomcat5_test结构:
$ ls -l /usr/local/tomcat5_test
drwxr-xr-x 2 tomcat tomcat 4096 10-16 17:20 bin
lrwxrwxrwx 1 root root 28 10-16 23:26 common -> /var/lib/tomcat5_test/common
drwxr-xr-x 3 root root 4096 10-16 23:26 conf
lrwxrwxrwx 1 root root 21 10-16 23:26 logs -> /var/log/tomcat5_test
lrwxrwxrwx 1 root root 28 10-16 23:26 server -> /var/lib/tomcat5_test/server
lrwxrwxrwx 1 root root 28 10-16 23:26 shared -> /var/lib/tomcat5_test/shared
lrwxrwxrwx 1 root root 28 10-16 23:26 temp -> /var/cache/tomcat5_test/temp
lrwxrwxrwx 1 root root 29 10-16 23:26 webapps -> /var/lib/tomcat5_test/webapps
lrwxrwxrwx 1 root root 28 10-16 23:26 work -> /var/cache/tomcat5_test/work
2. Fedora8中rpm版tomcat5问题:
http://hi.baidu.com/leitelyaya/blog/item/1795fcd2d9e7d533960a16e8.html