一、前置條件
安裝tomcat需要先安裝jdk,所以沒有安裝jdk同學,詳見參考文章
二、Linux上安裝tomcat
1. 下載Apache tomcat
在左邊,可以選擇下載各種版本的tomcat。根據服務器操作系統選擇下載。Linux操作系統就下載tar.gz包。
我下載的文件名是:apache-tomcat-8.5.37.tar.gz
2. 檢查linux是否安裝tomcat
輸入rpm -qa|grep tomcat
查看下系統信息,確認是32位還是64位:uname -a
3. 上傳服務器、解壓縮tomcat
使用WinSCP或者Xftp等工具將tar.gz壓縮包上傳到 /usr/local 目錄中,以下操作命令都需要在root賬戶下操作。
進入目錄解壓安裝包
進入目錄:cd /usr/local
解壓文件:tar -zxvf apache-tomcat-8.5.37.tar.gz
將目錄apache-tomcat-8.5.37重命名為tomcat,方便一些
重命名文件:mv apache-tomcat-8.5.37 tomcat8
4. 配置環境變量
輸入:vim /etc/profile 打開配置文件,按 i 進入編輯模式,在profile文件尾部 unset -f pathmunge 后面添加如下內容:
unset i unset -f pathmunge export JAVA_HOME=/usr/local/java/jdk1.8.0_221 export JRE_HOME=${JAVA_HOME}/jre export CATALINA_HOME=/usr/local/tomcat8 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${CATALINA_HOME}/bin export PATH=$PATH:${JAVA_PATH}:$PATH
編輯完之后,按Esc 並輸入 :wq(小寫) 保存並退出編輯,然后輸入以下指令:source /etc/profile 刷新環境配置使profile文件立即生效
5. 正常啟動
運行 /usr/local/tomcat8/bin/startup.sh 就會啟動tomcat,在瀏覽器中訪問http://localhost:8080了,能看到如下界面,說明訪問成功。
6. 正常關閉
運行 /usr/local/tomcat8/bin/shutdown.sh 就會關閉tomcat
7. 修改tomcat配置
進入 /usr/local/tomcat8/conf 目錄修改server.xml中的tomcat端口
運行 vim server.xml,用“/8080”定位到8080端口。如下圖:
可以修改端口,默認8080,然后按ESC鍵,然后按 :wq(注意有一個英文冒號),保存並退出。
8. 局域網內無法訪問解決辦法
訪問本地:http://localhost:8080/正確。但局域網內無法訪問,而且服務器可ping通。
注意:如果執行 firewall-cmd --zone=public --add-port=3690/tcp --permanent,提示FirewallD is not running錯誤,則說明防火牆未開啟。
1. 通過 systemctl status firewalld 查看firewalld狀態,發現當前是Active: inactive (dead)狀態,即防火牆未開啟。
2. 通過 systemctl start firewalld 開啟防火牆,沒有任何提示即開啟成功。
3. 再次通過 systemctl status firewalld 查看firewalld狀態,顯示running即已開啟了。
4. 如果要關閉防火牆設置,可能通過 systemctl stop firewalld 這條指令來關閉該功能。
先查看防火牆開放端口列表對於Centos7系統 firewall-cmd --zone=public --list-ports
如果沒有8080端口,添加端口
- 如果是firewalld防火牆 (對於Centos7系統),開啟防火牆端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 並且重新加載防火牆 firewall-cmd --reload
- 如果是iptables防火牆 ,執行 vi /etc/sysconfig/iptables 加入下面內容 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
如上配置並重啟iptables就可以在局域網內訪問8080端口了
在不同Linux系統中,操作指令會有細微的差別,Centos6防火牆相關命令:
service iptables status 查看防火牆狀態 service iptables start 開啟防火牆 service iptables stop 關閉防火牆 service iptables restart 重啟防火牆
對於Centos7系統來說,只有使用下面的指令,才可以對Linux防火牆進行啟停。
查看防火牆開放端口列表命令:firewall-cmd --zone=public --list-ports
開啟防火牆8080端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent
關閉防火牆命令:systemctl stop firewalld.service 禁止防火牆開機啟動命令:systemctl disable firewalld.service
重新加載防火牆命令:firewall-cmd --reload
9. 其他一些問題
啟動以后,可以利用命令 ps -ef|grep tomcat 查看tomcat是否正常啟動。
如果正常啟動以后無法訪問,可以先不修改8080端口,嘗試用8080端口訪問。如果可以通過8080端口正常訪問,則說明80端口被其他應用占用。
或者使用 netstat -an|grep 8080 命令查看是否有程序占用8080端口。
三、設置tomcat開機自動啟動
1. 在 tomcat/bin 目錄下面,增加 setenv.sh 配置,服務啟動的時候會調用,同時配置java內存參數。
輸入命令編輯:vim /usr/local/tomcat/bin/setenv.sh
#add tomcat pid CATALINA_PID="$CATALINA_BASE/tomcat.pid" #add java opts JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
2. 增加tomcat.service,在/usr/lib/systemd/system目錄下增加tomcat.service
輸入命令編輯:vi /usr/lib/systemd/system/tomcat.service
[Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking Environment='JAVA_HOME=/usr/local/java/jdk1.8.0_221/' Environment='CATALINA_PID=/usr/local/tomcat/tomcat.pid' Environment='CATALINA_HOME=/usr/local/tomcat/' Environment='CATALINA_BASE=/usr/local/tomcat/' Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' PIDFile=/usr/local/tomcat/tomcat.pid ExecStart=/usr/local/tomcat/bin/startup.sh ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
[unit]配置了服務的描述,規定了在network啟動之后執行。
[service]配置了環境變量,JAVA_HOME,服務的pid,服務的啟動,停止,重啟,內存參數。
[install]配置了使用用戶。
當需要啟動多個tomcat時,復制多個tomcat安裝文件在/usr/local/下,如/usr/local/tomcat2,並配置多個tomcat.service 如tomcat2.service,tomcat3.service 在配置中修改對應的路徑即可。
因為配置pid,在啟動的時候會在tomcat根目錄生成tomcat.pid文件,停止之后刪除。
同時tomcat在啟動時候,執行start不會啟動兩個tomcat,保證始終只有一個tomcat服務在運行。
多個tomcat可以配置在多個目錄下,使用不同的端口,互不影響。
3. 設置開機自啟
systemctl enable tomcat.service
4. 啟動tomcat
systemctl start tomcat.service
5. 在瀏覽器測試(略)
6. 上述步驟操作完成后如果還是訪問不了tomcat服務,可以嘗試重啟一下linux服務器,命令:reboot
systemctl常用命令
其中.service 可以省略
查看全部服務命令:
systemctl list-unit-files --type service
查看服務
systemctl status name.service
增加開機啟動
systemctl enable name.service
啟動服務
systemctl start name.service
停止服務
systemctl stop name.service
重啟服務
systemctl restart name.service
刪除開機啟動
systemctl disable name.service
可以部署到github上,可以部署到本地服務器用花生殼做內網穿透
參考:https://www.cnblogs.com/li150dan/p/12535067.html