以前碰到過,要tomcat開機啟動的問題,后來用root用戶啟,但是風險很大
這次碰巧看到了解決辦法,趕緊收了下來
原帖名字:ubuntu7.04 安裝tomcat6
來源:http://tristonxu.spaces.live.com/blog/cns!6C727D52D9679258!382.entry
終于搞定了,如果僅僅安裝tomcat,那是很容易的,問題是如何讓他隨ubuntu啟動運行,這才是問題的關鍵!現在終于搞定了,唉...俺還是比較笨,居然用了兩天的時間才解決,而且問題解決之后,才發現之前原來一直是在成功的門前徘徊。想想,人生何嘗不是這樣,有多少人用一輩子的時光在成功的門前晃蕩...
呵呵~還是趕緊把它記錄下來吧,年紀大了阿...
一、安裝之前
1、下載tomcat
最新的tomcat是apache-tomcat-6.0.13.tar.gz,下載地址是:
http://tomcat.apache.org/download-60.cgi
安裝之前要先安張jdk,最好選擇JDK5.0以上版本吧。
二、安裝ing
1、解壓apache-tomcat-6.0.13.tar.gz到安裝目錄下。
根據俺的實際情況,我把tmcat安裝在/opt目錄下
shell>sudo tar zxvf apache-tomcat-6.0.13.tar.gz /opt
解壓之后,會在/opt下生成一個apache-tomcat-6.0.13文件夾
2、在/usr/local下建立一個軟鏈接
shell>cd /usr/local
shell>sudo ln -s /opt/apache-tomcat-6.0.13 tomcat6
3、測試安裝
運行啟動腳本,測試tomcat是否安裝成功
s
hell>sudo /usr/local/tomcat6/bin/startup.sh
然后打開FF,用http://localhost:8080 訪問tomcat。一般來講,會成功的。呵呵~
三、讓tomcat開機啟動
根據apache網站的Document說明(這個說明也寫得很差,嗚嗚!),要是tomcat作為一個守護程序運行,需要用到jsvc工具。(這個工具是啥玩意,俺也不懂,懶得研究,居然tomcat自帶,那就最好了)
1、準備工作
Tomcat安裝后,如果讓Tomcat用root身份啟動,Tomcat將會擁用root權限,這將可能給系統帶來安全隱患,黑客可能利用這個來攻擊我們的系統,所以我們得添加一個獨立運行此服務的用戶,用下面的命令:
shell>sudo useradd -d /usr/local/tomcat6 -s /usr/sbin/nologin tomcat
以上命令為系統增加一個tomcat用戶,并且設置為nologin
設置用戶tomcat5對tomcat的權限
shell>sudo chown -R tomcat:tomcat /usr/local/tomcat6
shell> sudo chown -R tomcat:tomcat /opt/apache-tomcat-6.0.13
2、安裝jsvc
shell>cd /usr/local/tomcat6/bin
shell>sudo tar xvfz jsvc.tar.gz
shell>cd jsvc-src
shell>sudo sh support/buildconf.sh
如果成功,命令終端打印出下面report:
support/buildconf.sh: configure script generated successfully
[注:在此之前,我的系統安裝了autoconf,可以使用shell>sudo apt-get install autoconf 進行安裝]
為configure添加執行權限
shell>sudo chmod 755 configure
shell>sudo ./configure --with-java=/usr/lib/j2sdk1.6-sun (這是俺系統的JDK安裝的位置)
shell>sudo make
okay!如果沒有出現錯誤的話,jsvc就安裝成功了!
3、設置啟動腳本
接下來,就是把jsvc中帶有的一個tomcat5.sh的一個模板復制到/etc/init.d目錄下,然后根據自己的情況,進行修改。
shell>sudo cp /usr/local/tomcat6/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
上面的命令是移動文件tomcat5.sh到/etc/init.d/里面并改名為tomcat
修改/etc/init.d/tomcat文件:
shell>cd /etc/init.d
shell>sudo gedit tomcat
俺的tomcat文件修改完如下:
#!/bin/sh
##############################################################################
#
# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# That is for Tomcat-5.0.x (Apache Tomcat/5.0)
#
# Adapt the following lines to your configuration
JAVA_HOME=/usr/lib/j2sdk1.6-sun
CATALINA_HOME=/usr/local/tomcat6
DAEMON_HOME=/usr/local/tomcat6/bin
TOMCAT_USER=tomcat
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/usr/local/tomcat6
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
stop)
#
# Stop Tomcat
#
$DAEMON_HOME/src/native/unix/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;
*)
echo "Usage tomcat.sh start/stop"
exit 1;;
esac
[注:需要修改的地方,我都用紅色標出來]
如果在其他linux系統,這樣就okay了,但是在ubuntu中,還需要進行一步,就是把在rc2.d中設置一個軟鏈接
在/etc/rc2.d目錄下建立S16apache軟聯接到/etc/init.d/tomcat
shell>cd /etc/rc2.d
shell>ln -s /etc/init.d/apache2 S16apache
[注:rc2.d目錄下的文件要以S后就數字開頭,表示啟動的順序。而rc2.d中的2,表示這個目錄下文件在開機時的運行級別(runlevel)為2]
四、結束
重新啟動系統
shell>sudo reboot -n
啟動后,就可以在FF中直接輸入http://localhost:8080。如果成功,就可以看見一直可愛的kitten拉~~~