Tomcat 是由 Apache Foundation 研發用於支持 JSP(Java Server Page) 的網絡服務軟件.
Ubuntu14.04 的源中包含了 tomcat 6/7 兩個版本, 大家可以選擇任意一個進行安裝.
安裝 Tomcatsudo apt-get install tomcat6
或者
sudo apt-get install tomcat7
稍等片刻, Tomcat6 即會被自動安裝在 /usr/share/tomcat6 的目錄中
設置 Tomcat 運行的 JAVA 環境
首先請確保 Oracle/Sun 的 Java Development Toolkit 已經安裝.
如果尚未安裝,參照Java-Ubuntu中文或者Ubuntu安裝JDK詳解
啟動和停止Tomcat要啟動Tomcat,運行
sudo /etc/init.d/tomcat6 start
此時打開浏覽器,在地址欄內輸入
http://localhost:8080
要停止Tomcat,運行
sudo /etc/init.d/tomcat6 stopTomcat 配置文件路徑
Tomcat home directory : /usr/share/tomcat6 Tomcat base directory : /var/lib/tomcat6或/etc/tomcat6設置Tomcat管理員帳號
Tomcat 的用戶帳號信息都保存在 tomcat-users.xml 的文件中, 運行
sudo nano /var/lib/tomcat6/conf/tomcat-users.xml
在的標簽前添加一行
保存並關閉. 重新運行 tomcat 即可輸入該用戶名和密碼,登錄Tomcat的管理頁面.
弊端Ubuntu 默認把 Tomcat 分到2個目錄, 在之後配置 Eclipse Server 時會把人逼瘋的, 配置哪個路徑都不對, Eclipse 無法識別安裝的Tomcat.
解決方案:
sudo ln -s /var/lib/tomcat6/conf /usr/share/tomcat6/conf sudo ln -s /etc/tomcat6/policy.d/03catalina.policy /usr/share/tomcat6/conf/catalina.policy sudo ln -s /var/log/tomcat6 /usr/share/tomcat6/log sudo chmod -R 777 /usr/share/tomcat6/conf
這種方法繞過 Ubuntu 自身的包管理器, 直接從 Apache Tomcat 的主頁上下載並使用 Tomcat 軟件, 該方法方便快捷的安裝舊版或新測試版 Tomcat 而並不影響系統的穩定性, 輕松自在.
從 tomcat 的官方下載頁面, 目前官網上提供如下幾個版本以供下載
我選擇下載了 Tomcat 8.5.6 版本.
下載 8.5.6->Binary Distributions->Core 分類中的 zip 或者 tar.gz包後, 本地解壓縮並將新生成的目錄重命名為tomcat, 以方便使用.
將這個文件夾移動至某路徑PATH, 比如我以調動到了 /opt/tomcat, 參考以上設置環境變量和端口設置等步驟, 大功告成!
tar -zxvf apache-tomcat-8.5.6.tar.gz -C /opt cd /opt/apache-tomcat
注意
解壓縮完以後發現, 有些目錄 cd 沒有權限
ll發現是沒有, 運行權限的
linux下
ls 某文件夾需要文件夾有 r 讀權限.
cd 某文件夾 需要文件夾有 x 運行權限chmod +x ./*同樣想要運行bin下的腳本也需要運行權限, 因此
chmod +x ./bin/*.sh
bin 下存儲了我們運行和配置 tomcat 所需要的腳本信息
vcWxvg==" src="http://www.2cto.com/uploadfile/Collfiles/20161108/2016110809385047.png" title="\" />
首先我們需要為tomcat配置JAVA的環境變量, 直接寫到 setclasspath.sh 文件的開頭即可, 我寫入的內容如下所示
#--------------------- # java path #--------------------- JAVA_HOME=/usr/lib/jvm/java-8-oracle JRE_HOME=$JAVA_HOME/jre JAVA_BIN=$JAVA_HOME/bin CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME PATH CLASSPATH
運行環境檢查剛開始的時候, 在 CLASSPATH 的開始配置了當前目錄.
即
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib導致運行的時候老是出錯, 其主要就是運行環境找不到, 因為 tomcat 運行需要 bootstrap.jar 和 tomcat-juli.jar, 運行的時候在當前 bin 目錄下找到了這兩個 bin 包, 但是關閉服務的時候, 目錄更改了這兩個 jar 包就沒有找到, 導致服務能起來, 但是卻結束不了
配置完 JAVA 之後, 檢查運行環境是否正確
sudo sh configtest.sh
我們提到了 catalina.sh 腳本其實就是一個完備的服務集合, 因此上面的命令等價於
sudo sh catalina.sh configtest
configtest.sh 腳本其實就是運行了catalina.sh configtest 命令, 這點可以從其源碼中看到
PRGDIR=`dirname "$PRG"` EXECUTABLE=catalina.sh exec "$PRGDIR"/"$EXECUTABLE" configtest "$@"
如果 ERROR 的話, 說明沒有配置沒有問題
直接運行sudo ./startup.sh
等價於
sudo sh catalina.sh start關閉
./shutdown.sh
等價於
sudo sh catalina.sh stop
打開http://localhost:8080
catalina.sh 腳本可以直接作為服務來使用, 我們做一個了鏈接即可
cd /etc/init.d sudo ln -s /opt/apache-tomcat/catalina.sh ./tomcat8
當然我們也可以自己做一個
#!/bin/sh # # /etc/init.d/tomcat8 -- startup script for the Tomcat 8 servlet engine # # Written by Miquel van Smoorenburg. # Modified for Debian GNU/Linux by Ian Murdock . # Modified for Tomcat by Stefan Gybas . # Modified for Tomcat6 by Thierry Carrez . # Modified for tomcat8 by Ernesto Hernandez-Novich . # Additional improvements by Jason Brittain . # ### BEGIN INIT INFO # Provides: tomcat8 # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Should-Start: $named # Should-Stop: $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Tomcat. # Description: Start the Tomcat servlet engine. ### END INIT INFO set -e PATH=/bin:/usr/bin:/sbin:/usr/sbin NAME=tomcat8 DESC="Tomcat servlet engine" if [ `id -u` -ne 0 ]; then echo "You need root privileges to run this script" exit 1 fi # Make sure tomcat is started with system locale if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG fi . /lib/lsb/init-functions if [ -r /etc/default/rcS ]; then . /etc/default/rcS fi case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" sh /opt/apache-tomcat/bin/startup.sh ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" sh /opt/apache-tomcat/bin/shutdown.sh ;; status) set +e if [ "$?" = "0" ]; then if [ -f "$CATALINA_PID" ]; then log_success_msg "$DESC is not running, but pid file exists." exit 1 else log_success_msg "$DESC is not running." exit 3 fi else log_success_msg "$DESC is running with pid `cat $CATALINA_PID`" fi set -e ;; restart|force-reload) $0 stop sleep $0 start ;; *) log_success_msg "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac exit 0
那麼啟動 tomcat8
service tomcat8 start OR etc/init.d/tomcat8 start
停止 tomcat8
service tomcat8 stop OR etc/init.d/tomcat8 stop
sudo apt-get install jsvc
或者直接用tomcat自帶的源碼包進行編譯
tar -zxvf commons-daemon-native.tar.gz cd commons-daemon-1.0.15-native-src/unix ./configure --with-java=$JAVA_HOME make
更加詳細的信息, 請參見
Tomcat 學習筆記(2) - 使用 jsvc 啟動tomcat
Linux下兩種自動啟動Tomcat的方法(轉)