目錄
- 一、手工部署項目
- 1.在IDEA中開發SpringBoot項目并打成jar包
- 2. 將jar包上傳到Linux服務器
- 3. 輸入指令啟動SpringBoot程序
- 4. 檢查防火墻,確保80端口(項目端口)對外開放,訪問SpringBoot項目
- 5. 在windows訪問項目
- 6. 改為后臺運行SpringBoot程序,并將日志輸出到日志文件 目前程序運行的問題 :
- 7. 停止SpringBoot程序(殺進程)
- 二、通過Shell腳本自動部署項目
- 1. 在Linux中安裝Git
- 2. 在Linux中安裝maven
- 3. 編寫Shell腳本 (拉取代碼、編譯、打包、啟動
- 4. 為用戶授予執行shell腳本的權限
- 5. 執行Shell腳本
- 總結
后端環境要搭好,如jdk、mysql、tomcat、maven、git等
一、手工部署項目
1.在IDEA中開發SpringBoot項目并打成jar包
2. 將jar包上傳到Linux服務器
mkdir /usr/local/app —- 創建目錄,將項目jar包放到此目錄
3. 輸入指令啟動SpringBoot程序
4. 檢查防火墻,確保80端口(項目端口)對外開放,訪問SpringBoot項目
5. 在windows訪問項目
6. 改為后臺運行SpringBoot程序,并將日志輸出到日志文件 目前程序運行的問題 :
線上程序不會采用控制臺霸屏的形式運行程序,而是將程序在后臺運行
線上程序不會將日志輸出到控制臺,而是輸出到日志文件,方便運維查閱信息
- nohup命令
nohup 命令 :
英文全稱 no hang up (不掛起),用于不掛斷地運行指定命令,退出終端不會影響程序的運行
語法格式 :
nohup Command [ Arg …] [&]
參數說明 :
Command :要執行的命念
Arg :一些參數,可以指定輸出文件
& : 讓命令在后臺運行
舉例 :
nohup java -jar boot工程.jar &> hello.log & —- 后臺運行java -jar命令,并將日志輸出到reboot.log文件
7. 停止SpringBoot程序(殺進程)
二、通過Shell腳本自動部署項目
1. 在Linux中安裝Git
Git安裝指令
- yum list git —- 列出git安裝包
- yum install git —- 在線安裝git
使用Git克隆遠程倉庫代碼
- cd /usr/local/
- git clone https://gitee.com/Dongli_01/re_boot.git
2. 在Linux中安裝maven
1. 將maven安裝包上傳到Linux
2. 解壓安裝包
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
3. 在Linux中安裝maven
- vim /etc/profile —- 修改配置文件,加入如下內容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$ JAVA_HOME/bin:$ MAVEN_HOME/bin:$PATH
$ JAVA 和 $ MAVEN 中的 $ 和 J、M之間沒有空格,此處是由于MD語法顯示問題空一格
加載資源,查看maven版本
source /etc/profile
mvn -version
vim /usr/local/apache-maven-3.5.4/conf/settings.xml —- 設置一下 setting 文件,指定 maven 本地倉庫的目錄(repo目錄需要自己創建),修改配置文件內容如下
< localRepository>/usr/local/repo</ localRepository>
注:< localRepository> 中的 < 和 l 以及 </ localRepository> 中的 / 和 l 之間沒有空格,此處是由于MD語法問題空一格
3. 編寫Shell腳本 (拉取代碼、編譯、打包、啟動
- Shell 腳本簡介
Shell腳本 (shell script) ,是一種Linux系統中的腳本程序。使用Shel腳本編程跟Javascript、Java編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了
- 編寫Shell 腳本
#!/bin/sh echo ================================= echo 自動化部署腳本啟動 echo ================================= echo 停止原來運行中的工程 APP_NAME=re_boot tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 2 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi echo 準備從Git倉庫拉取最新代碼 cd /usr/local/re_boot echo 開始從Git倉庫拉取最新代碼 git pull echo 代碼拉取完成 echo 開始打包 output=`mvn clean package -Dmaven.test.skip=true` cd target echo 啟動項目 nohup java -jar re_boot-1.0-SNAPSHOT.jar &> re_boot.log & echo 項目啟動完成
4. 為用戶授予執行shell腳本的權限
1. 權限說明
- chmod (英文全拼: change mode) 命令是控制用戶對文件的權限的命令
- Linux中的權限分為: 讀®、寫(w)、執行(x)三種權限
- Linux的文件調用權限分為三級:文件所有者 (wner) 、用戶組 (Group) 、其它用戶 (Other Users)
- 只有文件的所有者和超級用戶可以修改文件或目錄的權限
- 要執行Shell腳本需要有對此腳本文件的執行權限,如果沒有則不能執行
2. chmod命令簡介
- chmod命令可以使用八進制數來指定權限
# | 權限 | rwx |
---|---|---|
7 | 讀 + 寫 + 執行 | rwx |
6 | 讀 + 寫 | rw – |
5 | 讀 + 執行 | r – w |
4 | 只讀 | r – – |
3 | 寫 + 執行 | – wx |
2 | 只寫 | – w – |
1 | 只執行 | – -x |
0 | 無 | – – – |
- 舉例:
- chmod 777 bootStart.sh —- 為所有用戶授予讀、寫、執行權限
- chmod 755 bootstart.sh —- 為文件擁有者授予讀、寫、執行權限,同組用戶和其他用戶授予讀、執行權限
- chmod 210 boot5tat.h —- 為文件擁有者授予寫權限,同組用戶授予執行權限,其他用戶沒有任何權限
- 注意 :三位數字分別代表不同用戶的權限
- 第1位表示文件擁有者的權限
- 第2位表示同組用戶的權限
- 第3位表示其他用戶的權限
5. 執行Shell腳本
總結
歡迎各位留言交流以及批評指正,如果文章對您有幫助或者覺得作者寫的還不錯可以點一下關注,點贊,收藏支持一下。
以上就是一文帶你快速了解如何在Linux上部署項目的詳細內容,更多關于在Linux上部署項目的資料請關注其它相關文章!