最近接外包,需要部署服務器,便是參考了網上的幾篇博文,成功在阿里雲服務器成功部署了Spring Boot項目,特記下本篇筆記
Spring Boot項目打包
這里說一下部署的一些問題
1.mysql驅動
創建spring boot的時候,在界面選擇添加了MySql的依賴,但是,實際項目測試的時候,發現驅動錯誤,所以,得把MySql驅動改為下面的驅動
<!-- mysql驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
2.打包
使用spring boot項目,通過maven中的lifecycle中的package進行快速打jar包,這個jar包內置了tomcat服務器,之后就可以直接運行此jar包。
之后我們就可以得到一個jar包,把此jar包部署到服務器
配置寶塔linux系統環境
購買服務器
我購買的是學生主機,比較實惠,只要是經過實名驗證,24歲以下,就是自動默認的學生身份
選擇輕量級應用服務器和寶塔linux選項,可以快速安裝並使用linux寶塔面板,很適合不懂linux命令的人群
安裝寶塔系統
購買到服務器成功之后,如果是以前的話就會要求你設置管理員的密碼,但實際操作的時候,並沒有彈出窗口,需要手動去設置密碼
之后就可以通過此root賬戶和密碼,使用xshell等工具遠程連接到服務器
當然,也可以不設置,不設置的話每次遠程連接服務器都要進入阿里雲的控制台才能操作
切換到管理員賬戶(命令為sudo su root
),輸入下面的安裝寶塔linux命令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
之后會彈出一個提示,輸入y之后就開始安裝了
我們輸入下面命令,來查看系統生成的linux寶塔系統的用戶名和密碼
/etc/init.d/bt default
登錄寶塔linux系統
在登錄之前,還得在安全組的規則中添加8888端口,否則無法進入寶塔系統登錄的界面
寶塔的地址為ip地址:8888,如47.22.22.33:8888
使用上面獲得的寶塔系統的賬戶密碼登錄寶塔linux系統,之后進行環境的安裝(數據庫,php,tomcat)
由於我們是jar包方式部署,所以需要服務器上配置好java環境,我們不想通過命令行類配置java環境,可以選擇寶塔系統安裝Tomcat環境
安裝Tomcat環境就會默認安裝Java環境了,Tomcat環境的話,選擇版本8,這樣,默認的Java環境就是1.8,如果版本為7,則默認為Java環境為1.7
遠程連接服務器
可以使用ssh本地客戶端遠程連接服務器,我這里使用的是xshell,連接很簡單,只需要配置好主機(Ip地址)、用戶名和密碼即可
之后輸入linux中的管理員密碼即可成功登陸
服務器配置mysql數據庫
1.開啟3306接口放行
PS:可能還需要在服務器的防火牆添加規則
2.配置mysql遠程連接
默認的mysql是不允許遠程連接的,所以,我們得配置mysql遠程連接
使用Xshell等ssh客戶端,遠程連接到服務器上,之后輸入命令mysql -u 賬戶名 -p
,輸入密碼之后即可進入到mysql命令行,輸入下面的命令
%使用mysql默認的數據庫
use mysql;
%設置遠程連接
update user set host ='%' where user = 'root' and host='localhost';
%刷新
flush privileges
參考鏈接:
解決Navicat遠程連接MySQL出現 10060 unknow error
部署項目
服務器部署spring boot項目有兩種方式,war(傳統tomcat方式),jar
war的話,直接放在tomcat的webapp的目錄即可
本文使用是jar包部署,使用linux寶塔系統把之前的那個spring boot的jar包上傳到服務器上
由於是服務器,如果關閉了遠程連接窗口,就會自動結束進程,所以,得要實現后台運行jar包
使用命令來開啟后台
//遠程連接關閉,也會關閉
java -jar xx.jar
//后台
java -jar xx.jar &
新建一個腳本start.sh
,然后腳本需要給予權限(寶塔linux中文件選項可以快捷更改)
java -jar xx.jar >nohup.out 2>&1&
上面的腳本,只需要修改為正確的jar包文件,之后執行腳本就會開啟后台執行jar包,同時,會將日志輸出到nohup.out文件中
我們在本地建好腳本,之后上傳到服務器上,修改權限為777
下面的全勾選,權限就會變為777
之后通過ssh客戶端遠程連接服務器,以管理員的身份來執行腳本
./start.sh
之后項目訪問的話就是通過ip地址+端口號+項目名
,如44.22.22.22:13888/Demo/hello
,這里,我是在spring boot配置文件中自定義了端口13888,默認的話則是8080
如果有自定義端口,還要放行端口,在寶塔linux系統的安全選項可以修改,詳情請參考上面的mysql端口的放行
如果項目有所更改,再次部署的時候,先通過jps命令查看運行的jar包,之后關閉進程,重新上傳新的jar包,並執行腳本即可