歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Ubunt安裝和配置tomcat8服務

CSDN GitHub Ubunt安裝和配置tomcat8服務 AderXCoding/system/tools/tomcat

 

1 tomcat介紹


Tomcat 是由 Apache Foundation 研發用於支持 JSP(Java Server Page) 的網絡服務軟件.

2 安裝tomcat


2.1 源方式(不推薦)


Ubuntu14.04 的源中包含了 tomcat 6/7 兩個版本, 大家可以選擇任意一個進行安裝.

安裝 Tomcat
sudo 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 stop
Tomcat 配置文件路徑
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

2.2 下載安裝最新版本的Tomcat


2.2.1 官網的tomcat版本


這種方法繞過 Ubuntu 自身的包管理器, 直接從 Apache Tomcat 的主頁上下載並使用 Tomcat 軟件, 該方法方便快捷的安裝舊版或新測試版 Tomcat 而並不影響系統的穩定性, 輕松自在.

從 tomcat 的官方下載頁面, 目前官網上提供如下幾個版本以供下載

版本 Documentation Download 6.0 tomcat-6.0-doc download-60 7.0.72 tomcat-7.0-doc download-70 8.0.38 tomcat-8.0-doc download-80 8.5.6 tomcat-8.5-doc download-80 9.0.0 tomcat-9.0-doc download-90

2.2.2 下載安裝 tomcat 8.5.6


我選擇下載了 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

2.2.3 權限問題


注意

解壓縮完以後發現, 有些目錄 cd 沒有權限

cd 沒有權限

ll發現是沒有, 運行權限的

沒有運行權限

linux下
ls 某文件夾需要文件夾有 r 讀權限.
cd 某文件夾 需要文件夾有 x 運行權限

chmod +x ./*

同樣想要運行bin下的腳本也需要運行權限, 因此

chmod +x ./bin/*.sh

2.2.4 配置和運行


bin 下存儲了我們運行和配置 tomcat 所需要的腳本信息

vcWxvg==" src="http://www.2cto.com/uploadfile/Collfiles/20161108/2016110809385047.png" title="\" />
 

腳本 描述 daemon.sh 守護進程(服務)的方式啟動和關閉tomcat, 以jsvc管理tomcat, jsvc可以由commons-daemon-native.tar.gz編譯出 setclasspath.sh 設置JAVA運行環境 configtest.sh 檢查 tomcat 運行環境和配置 startup.sh 啟動tomcat shutdown.sh 關閉tomcat version.sh 顯示版本信息 tool-wrapper.sh   digest.sh   catalina.sh 完善的服務腳本, 支持 start, stop, version 等方式, 可以直接放到 /etc/init.d 下作為服務來使用 配置JAVA環境變量

首先我們需要為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

啟動tomcat

關閉
./shutdown.sh

等價於

sudo sh catalina.sh stop

打開http://localhost:8080

tomcat運行成功

2.2.5 配置啟動腳本


catalina.sh 腳本可以直接作為服務來使用, 我們做一個了鏈接即可

cd /etc/init.d
sudo ln -s /opt/apache-tomcat/catalina.sh ./tomcat8

catalina.sh 腳本可以直接作為服務來使用

當然我們也可以自己做一個

#!/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

啟動和關閉服務

啟動和關閉服務

2.2.6 高級配置之jsvc啟動


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

編譯jsvc

更加詳細的信息, 請參見

Tomcat 學習筆記(2) - 使用 jsvc 啟動tomcat

Linux下兩種自動啟動Tomcat的方法(轉)

Copyright © Linux教程網 All Rights Reserved