服務部署
記錄原因
將本地SpringBoot項目通過war包部署到虛擬機中,驗證服務器部署。
使用war包是爲了方便替換配置文件等。
工具
對象 | 版本 |
---|---|
Spring Boot | 2.4.0 |
VMware Workstation Pro | 16 |
Git | 2.9.4 |
maven | 3.3.9 |
JDK | jdk1.8.0_281 |
Tomcat | 9.0.45 |
Redis | 6.2.1 |
Tomcat版本需要與SpringBoot內置版本保存大版本上一致,否則會出現問題
虛擬機這裏安裝不贅述。
Git
-
進入虛擬機的
cd /usr/local/src
目錄,輸入下載鏈接:wget https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz
-
解壓縮
tar -zxvf git-2.9.4.tar.gz
-
安裝編譯Git時需要的包(一句一句執行)
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc perl-ExtUtils-MakeMaker
-
刪除已有的Git
yum remove git
-
編譯安裝
進入根目錄:cd /usr/local/src/git-2.9.4 安裝到/usr/local/git目錄:./configure --prefix=/usr/local/git 編譯安裝:make && make install
-
創建軟鏈:
ln -s /usr/local/git/bin/* /usr/local/bin/
-
驗證安裝完成
git --version
maven
-
檢查maven是否安裝
mvn -v
-
在/usr/local/src目錄下下載maven壓縮包
wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
-
解壓壓縮包
tar -zxvf apache-maven-3.3.9-bin.tar.gz
-
移動到/usr/local
mv apache-maven-3.3.9 /usr/local/maven3
-
配置環境變量
-
打開環境變量文件
profile
vim /etc/profile
-
在最末尾添加環境變量
export MAVEN_HOME=/usr/local/maven3 export PATH=$MAVEN_HOME/bin:$PATH
-
tips:這裏準備部分Linix 文本編輯命令
i 進入編輯模式-在光標所在位置開始輸入 esc 退出編輯模式 :wq 退出編輯模式後進行文件保存並推出 更多 https://www.linuxprobe.com/linux-vim-commend.html
-
使配置生效
source /etc/profile
-
-
檢查是否安裝成功
mvn -v
JDK
-
檢查是否安裝
java -version
-
安裝JDK時建議在本地下載好安裝包之後使用winSCP等軟件從本地上傳到服務器中,注意一定要下載正確的版本(
jdk-8uxxx-linux-x64.tar.gz
)。JDK下載地址如下:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
-
將下載好的JDK安裝包上傳到服務器的/usr/local/src目錄下,上傳完成後解壓。
tar -zxvf jdk-8u201-linux-x64.tar.gz
-
將解壓好的JDK移動到/usr/local下
mv jdk1.8.0_201 /usr/local
-
配置環境變量
-
進入配置文件
vim /etc/profile
-
在最後添加如下環境變量配置後保存並退出:
export JAVA_HOME=/usr/local/jdk1.8.0_201 export JRE_HOME=/usr/local/jdk1.8.0_201/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
-
使配置生效
source /etc/profile
-
-
驗證安裝
java -version
Tomcat
-
下載Tomcat到本級,通過filezilla等工具上傳到
/usr/local
中https://tomcat.apache.org/download-90.cgi#9.0.45
-
解壓縮
tar -zxvf apache-tomcat-9.0.45.tar.gz
-
如果有強迫症,可刪除壓縮包
rm /usr/local/apache-tomcat-9.0.45.tar.gz
-
啓動
sh /usr/local/apache-tomcat-9.0.45/bin/startup.sh
-
關閉
sh /usr/local/apache-tomcat-9.0.45/bin/shutdown.sh
-
實時日誌查看
tail -500f /usr/local/apache-tomcat-9.0.45/logs/catalina.out
Redis
-
通過本地下載redis上傳到服務器或直接在服務器下載。我是選擇穩定版本下載,傳到虛擬機上。
https://redis.io/download
-
解壓縮
tar -zxvf redis-6.2.1.tar.gz
-
Yum安裝gcc依賴,並編譯安裝redis
cd /usr/local/redis-6.2.1 yum install gcc make MALLOC=libc cd src && make install
-
啓動redis(另外可將其配置成一個服務)
./redis-server
連接不同問題解決
-
ping ip
ip不同檢查防火牆
-
虛擬機檢查端口號是否開啓
修改端口後需要重啓防火牆服務才能生效
centos8 檢查端口是否開啓 firewall-cmd --query-port=8080/tcp 開啓端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 重啓防火牆: systemctl restart firewalld.service
這裏
centos8
與之前的版本端口號開啓有差異。最開始虛擬機Tomcat起來後我windows訪問8080端口不通,後根據這兩步訪問成功。
項目準備
如果是使用Idea構建一個新項目,可以在創建時選擇打包方式,如果構建時選擇的是jar包方式,則需要一些變動。
新項目
構建時選擇打包方式爲war包
Jar包項目
指的是打包方式爲jar的項目。
-
打包時需要忽略內置Tomcat,本地運行時需要使用。因此本地運行時關閉註釋。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--忽略內置tomcat容器--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
-
忽略內置Tomcat的同時,需要額外添加
servlet
依賴<!--由於忽略內置tomcat容器,因此使用javax.servlet方法需要額外添加依賴--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency>
-
添加war包名,忽略打包文件(可選)
<build> <finalName>demo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <!--打包時忽略自定義類配置提示工具--> <exclude> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build>
打包
提供兩種方法。
- Idea 點擊Bulid>Build Artifacts>選擇 demo.war
-
使用maven的打包命令
mvn clean package
啓動
- 將打包好的
war
包通過filezilla
等工具上傳到虛擬機 tomcat下的webapp目錄中
-
啓動虛擬機上的Tomcat,並訪問,請求得到響應即成功
http://192.168.xxx.xxx:8080/demo/
踩坑
Tomcat啓動後,使用如下日誌命令監控項目啓動,出現問題直觀明瞭。
tail -500f /usr/local/apache-tomcat-9.0.45/logs/catalina.out
-
不管項目本地配置的端口號、訪問url是什麼,部署到虛擬機上都是使用Tomcat的端口號加war包名,如
8080/demo/
-
由於我訪問的是本地數據庫,因此需要修改項目配置文件中數據庫地址,部署項目時報錯
java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect...
這是由於數據庫服務器未給服務部署服務器訪問權限,具體修改參考 https://blog.csdn.net/xionglangs/article/details/50385057