CentOS 7 安裝 Apache Tomcat 8

Posted in :

選擇您的Tomcat版本,所有程式起步一定先決定哪個版本,Tomat解版本之中的差異:
http://tomcat.apache.org/whichversion.html

Tomcat 下載:
http://tomcat.apache.org/download-80.cgi

JDK的部份,這邊有分為ServerJRE與JDK,依照用途做選擇,如果是對外的Server,就必須選擇ServerJRE,ServerJRE少掉Browser Java Plug-in,auto-update以及無安裝程序。

Server JRE (Java SE Runtime Environment) 8 Downloads
http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html

當有了Java與Tomcat後,並且確認兩者確實相容後,將其解壓縮後,放到CentOS7上面,將apache-tomcat-8.5.?.tar.gz與server-jre-8u??-linux-x64.tar.gz放到以下路徑
/usr/tomcat與/usr/java,假如沒有請自行建立

使用問號,是因為一直在改版,不知道你下載到那一版。我目前是下載到 tomcat 8.5.20

修改設定:

# vim /etc/profile
JAVA_HOME=/usr/java/java
JRE_HOME=/usr/java/java/jre
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
TOMCAT_HOME=/usr/local/tomcat/tomcat
export JAVA_HOME JRE_HOME PATH CLASSPATH TOMCAT_HOME

設定systemctl tomcat.service

# vim /etc/systemd/system/tomcat.service
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/java/java
Environment=CATALINA_PID=/usr/tomcat/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/tomcat/tomcat
Environment=CATALINA_BASE=/usr/tomcat/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
ExecStart=/usr/tomcat/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

附註1:在Ubuntu 上不需要用到這一個 .service 檔案。
附註2:CATALINA_OPTS請依照實際環境修改


建立執行環境以及Tomcat User

建立java路徑:

# cd /usr/java
# ln -s jdk1.8.0_92/ java

這樣更換版本時,環境參數就不用修改,只需要變更link
取消link時,請使用unlink,例如

# cd /usr/java
# unlink java

建立tomcat路徑:

# cd /usr/tomcat
# ln -s apache-tomcat-8.5.20 tomcat

如上,更換版本,systemctl設定就不用修改,只需要變更link
取消link時,也一樣請使用unlink,例如

# cd /usr/tomcat
# unlink tomcat

建立Tomcat User:

# useradd -M -s /sbin/nologin tomcat

參數說明:
-M:不建立Home dir
-s:User使用的Shell,/sbin/nologin就是禁止登錄,apache也是這樣的

修改Tomcat資料夾權限:

# chown -R tomcat:tomcat /usr/tomcat/

PS: 千萬不要為了方便,用root啟動tomcat

修改Tomcat log存放位置:

# mkdir /var/log/tomcat
# rm -r /usr/tomcat/apache-tomcat-8.5.20/logs
# cd /usr/tomcat/apache-tomcat-8.5.20
# ln -s /var/log/tomcat logs

這樣就不需要一個一個去修改tomcat中的log位置,直接放到本身規劃的地方

啟動tomcat:

# systemctl daemon-reload

重新載入systemctl

# systemctl start tomcat

啟動tomcat

# systemctl enable tomcat

設定開機啟動,並非必要,依實際環境做設定

此時,tomcat因為並非root,所以不能使用1024以下的port啟動

PS: 別為了方便而改用root啟動…

請利用CentOS7本身firewalld 或 iptabes 的forward來做這件事情

# yum install firewalld
# systemctl start firewalld
# systemctl enable firewalld
# firewall-cmd –zone=public –add-forward-port=port=80:proto=tcp:toport=8080 –permanent
# systemctl restart firewalld

此時,就會把連到這台Server的80全部轉到8080使用

之後,將.war檔案放到/usr/tomcat/tomcat/webapps(或自訂路徑)中看看效果

這樣的設定完成後,除了更換Tomcat與ServerJRE版本相當容易外
也符合不使用root啟動tomcat原則,還能達成http的連線

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *