SpringBoot項目部署到阿里雲服務器全流程(簡直詳細到囉嗦)

SpringBoot項目部署到阿里雲linux服務器全流程

前言:很久沒有更新博客了。因爲最近公司需要部署一個SpringBoot項目到雲服務器上,來來回回折騰了好久,走了很多彎路,這過程中CSDN的博客幫了我很多,所以我自己也寫一篇博客上來吧,希望能幫到各位。

首先用一張圖來說明一下整個的部署流程

在這裏插入圖片描述
然後開始進入正文

1.申請阿里雲服務器

1.1 前往阿里雲官網:https://www.aliyun.com/
1.2 註冊一個賬號,登陸賬號
1.3 按如下步驟申請一個雲服務器:
在這裏插入圖片描述
在這裏插入圖片描述
1.4按照自己的需要,選擇合適的服務器配置,如果對配置不懂的(比如我),那你可以選擇“一鍵購買”,買個差不多的服務器。註冊過程中會讓你設置賬號密碼什麼的,還有一個遠程登陸密碼,拿個筆記記下來,丟了就GG了。(如果是土豪,你可以往高了配,但如果是學生的話,可以像我一樣註冊個學生認證,便宜很多)
注:筆記需要記錄的有 遠程連接密碼(6位數字)、公網IP、服務器賬號、服務器密碼(有特殊符號,數字,字母的那個)
在這裏插入圖片描述
1.5 購買完成後,回到首頁,點擊 “控制檯”>>“雲服務器ECS”>>“實例”
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.6 在實例列表中就可以看到我們購買的雲服務器。點進去,我們需要對服務器的安全組進行設置
在這裏插入圖片描述
1.7 安全組中除了自帶的規則,我們還需要添加幾個新的安全組(這些安全組的具體作用可以看其他博主的文章)
在這裏插入圖片描述
在這裏插入圖片描述
1.8 回到“實例列表”,點擊 實例ID 進入服務器,點擊 ”遠程連接“,輸入6位連接密碼,就可以看到我們申請的這個服務器了。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.9 然後我們按任意鍵登陸登錄服務器,輸入用戶賬號密碼(密碼是很複雜,要求有特殊符號!@#的那個,密碼輸入過程中是不可見的,輸完直接回車就行)在這裏插入圖片描述
1.10 至此整個阿里雲服務器的申請就算完成了。

2.Xshell 的安裝使用

2.1 簡單測試一下,你會發現網頁登陸雲服務器的方式有一個弊端,那就是隻要一小段時間不操作,服務器就會進入休眠,又得輸入連接密碼才能激活,很煩。所以我們採用別的方式登錄這個雲服務器。

2.2 Xshell是一個終端模擬軟件,換言之,我們只要在本地Windows系統下安裝這個軟件,打開輸入賬號密碼,就能登錄遠程的雲服務器

2.3 Xshell下載官網:https://xshell.en.softonic.com/(如果官網下載太慢,可以百度一下Xshell,很多資源,下載最新版的就行,我用的是Xshell 5)

2.4 下載完了選擇安裝路徑開始安裝,這個軟件很小,安裝也簡單,安裝過程中不會出現問題(新手的我也一路暢通)

2.5 打開Xshell們可以看到如下界面:
在這裏插入圖片描述
2.6 新建一個會話,拿出之前的筆記,將公網IP輸入到主機欄,端口號設置爲22(服務器的監聽端口,ftp默認爲21,sftp爲22,如果你設置22連不進去,那就換21試一下)

2.7 點擊 ”確定”>>“連接”,繼續拿出筆記,把服務器賬號填進“登錄的用戶名”,把服務器密碼填進“密碼”,如下圖。
在這裏插入圖片描述

2.8 登錄成功,進入服務器。以後我們就可以通過這個界面對雲服務器進行遠程操控,在上面進行jdk,mysql安裝,springboot部署等操作了。
在這裏插入圖片描述

3.雲服務器上jdk的安裝

3.1 先用Xshell 連接到你的雲服務器(或者直接在阿里雲官網中遠程連接也行)

3.2 在你的本地Windows系統中下載 Linux系統下的jdk,jdk下載官網:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。下載你需要的jdk版本,我用的是 jdk-8u221-linux-x64.tar.gz 。
在這裏插入圖片描述
3.3 下載完以後是這樣的
在這裏插入圖片描述
3.4 然後我們要把這個文件傳到雲服務器上去。聽起來很高端,其實很簡單的。在Xshell上執行rz命令就可以實現。首先我們要在雲服務器上安裝這個命令。在Xshell中執行

yum install lrzsz

在這裏插入圖片描述
3.5 我們要把上傳的文件放到哪個目錄,就要先cd進入那個目錄。我們申請的服務器的初始目錄結構如下:(cd命令:進入目錄)
在這裏插入圖片描述
現在我們要把這個jdk安裝包放到**/usr/java**目錄下(如果沒有該目錄則需要創建目錄。最好跟着我的安裝路徑來,不然後面的環境設置會比較麻煩),所以我們一步步cd到這個目錄下:
在這裏插入圖片描述
然後 rz 把安裝包上傳上去(rz命令:上傳文件)

rz

執行rz命令會彈出一個文件選擇框,選擇安裝包上傳

在這裏插入圖片描述
上傳中,等待上傳完畢
在這裏插入圖片描述
傳輸完畢,點擊“關閉”
在這裏插入圖片描述
3.6 使用ls命令查看目錄。可以看到,我們剛纔上傳的安裝包已經存在於目錄中了(ls命令:查看當前目錄下的文件)

ls

在這裏插入圖片描述
3.7 接下來解壓安裝包就算安裝成功了!使用tar命令解壓壓縮包,如果你下載的版本跟我不一樣,記得把包名改成你自己的版本 。(tar命令:解壓)

tar -zxvf jdk-8u221-linux-x64.tar.gz

3.8 然後就跟你在windows系統下安裝完jdk一樣,你還要設置系統環境變量。linux系統中的設置方法爲:找到文件 /etc/profile ,向其中添加如下代碼:

export JAVA_HOME=/usr/java/jdk1.8.0_221
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

先cd進目錄 /etc ,再使用 vim命令編輯文件profile(vim命令:編寫修改文件內容)
在這裏插入圖片描述
進來以後是下面這個界面,按 e 鍵入編輯。
在這裏插入圖片描述
3.9 在文件的最後把上面的代碼打進去,如果你的jdk版本跟我不一樣,記得把 export JAVA_HOME=/usr/java/jdk1.8.0_221 這一行改成你自己的版本。然後按ESC鍵退出編輯,輸入 :wq + 回車鍵保存退出文件。
在這裏插入圖片描述
3.10 查看文件是否保存成功。

cat profile

在這裏插入圖片描述
3.11 立即執行profile文件,使之生效,使用source命令(source命令:依次執行文件所有語句)

source /etc/profile

在這裏插入圖片描述
3.12 到這一步,jdk的安裝就全部完成了。最後,我們再使用java命令驗證一下,如果可以看到我們的版本信息就可以了。

java -version

在這裏插入圖片描述

4.linux雲服務器安裝mysql

4.1 啓動Xshell,連接阿里雲服務器

4.2 檢查系統有沒有自帶mysql

rpm -qa | grep mysql

4.3 一般情況是沒有的,但如果有,就卸載

rpm -e --nodeps mysql

4.4 使用下面的語句安裝mysql

yum install -y mysql mysql-server mysql-devel

4.5 我的linux系統版本是centOS 7,這個版本的mysql數據庫從默認程序列表中移除了。啓動mysql的方法如下,首先安裝 mariadb

yum install mariadb-server mariadb

4.6 啓動mariadb

systemctl start mariadb 

4.7 設置開機啓動

systemctl enable mariadb 

4.8 查看mysql的安裝,進入/usr/bin,然後查看

cd /usr/bin
mysqladmin --version

在這裏插入圖片描述
4.9 mysql安裝完畢,啓動成功,接下來我們要嘗試登錄了。mysql自帶了一個超級用戶root一個空名的用戶,。
因爲空名字用戶的存在,使得默認情況下mysql不需要賬號和密碼就可以登錄。登錄的方式爲:

mysql

在這裏插入圖片描述
這樣就登錄成功了,可以直接在上面編寫sql語句,不用的時候輸入 quit 退出返回到控制檯

4.10但出於安全的考慮,我們需要刪掉這個空名字用戶

use mysql;

刪除用戶

delete from user where user="";

更新操作(必須執行)

flush privileges;

然後退出

quit

再嘗試使用mysql命令 進入數據庫,報錯

mysql

在這裏插入圖片描述
4.11 我們刪掉了免密登錄,那我們怎麼進入數據庫呢?別擔心,我們不是還有一個root用戶嗎,但是我們沒有它的密碼怎麼辦。我們就當自己是忘記了root用戶的密碼。然後需要用到一段文字:skip-grant-tables,它的翻譯是 跳過授權表。顧名思義:,它的作用是將mysql設置爲只需賬號即可登錄。這個操作流程,以後當我們忘記了mysql的用戶密碼時也可以這麼做,具體如下:

查看mysql當前狀態

 systemctl status mysqld

在這裏插入圖片描述
顯示正在運行中,那麼要把它停掉(這一步不能省的)

service mysqld stop

在這裏插入圖片描述
進入編輯 /etc/my.cnf文件,在[mysqld]字段下添加跳過授權表字段

vim /etc/my.cnf
skip-grant-tables

在這裏插入圖片描述
然後ESC +:wq +回車 保存退出。啓動mysql,並且免密進入

systemctl start mysqld  //或者用重啓語句:service mysqld restart 
mysql -u root

在這裏插入圖片描述
登錄成功後先執行一個sql語句

show variables like 'vali%';

在這裏插入圖片描述
如果你的查詢結構跟我一樣是空的,那說明系統對你的用戶密碼設置不做要求。如果一大堆的文字,那就是你的用戶密碼的設置規範,需要最小長度爲8,包含字母,數字,特殊符號這些要求。根據你的查詢結果開始設置密碼(如果不是mysql5.7,這裏的語句會不一樣,百度對應版本修改語句即可),我這裏將密碼改爲 123456(如果你是有設置規範的,按規範設置一個符合要求的)

update mysql.user set authentication_string=password('123456') where user='root';

在這裏插入圖片描述
修改完成,一行被執行,還有一條警告(只要不是錯誤就行,警告不管,哈哈哈)。quit 退出mysql,去 /etc/my.cnf 中,我們不需要免密登錄了,把 skip-grant-tables 刪掉,保存退出。

quit
vim /etc/my.cnf

在這裏插入圖片描述
在這裏插入圖片描述
4.12 重啓mysql,重啓mysql,重啓mysql

service mysqld restart 

4.13 然後我們嘗試免密進入,發現進不去了,系統報錯
在這裏插入圖片描述
4.14 使用我們剛纔重新設置的密碼進入,登陸成功!(爲了安全,密碼在輸入過程中是不可見的,輸完按回車確認就行)

mysql -u root -p

在這裏插入圖片描述
4.15 至此,mysql數據庫也安裝完畢了。

5.部署SpringBoot項目

5.1 linux雲服務器上的環境我們都已經配置好了,但好像差了一個tomcat?因爲springboot內置了tomcat,所以後面我們把它打包成jar包就可以免去tomcat的配置了(如果是打包成war包,那還是要配置tomcat的)。
5.2 回到我們本地windows Springboot項目,下面我們對我們的項目做一些設置
打開pom.xml,添加如下語句,將項目的打包形式設置好

<!-- 打包成jar包 -->
	<packaging>jar</packaging>

在這裏插入圖片描述
打開application.properties,設置項目運行端口(我用的是8800,默認是8080,如果你用的是別的端口,要在這篇文章的1.7章節中把你的端口加入到安全組中去)在這裏插入圖片描述
打開application.yml,設置端口,連接數據庫
在這裏插入圖片描述
5.3 項目打包成jar包,右鍵項目 >> Run As >> Maven install
在這裏插入圖片描述
項目打包中

5.4 項目打包成功,可以在左邊target文件夾中看到項目的jar包
在這裏插入圖片描述
5.5 把這個jar複製到桌面,打開Xshell,使用rz指令把它上傳到linux雲服務器的根目錄
在這裏插入圖片描述
5.6 耐心等待上傳成功,使用ls指令可以看到我們上傳成功的jar包
在這裏插入圖片描述
5.7 我們要想在linux系統上運行這個項目,就要保證他運行所用的端口沒有被佔用,不然運行就會報錯

查看端口使用情況

netstat -anp | grep 8800   //netstat -anp | grep <端口號>

在這裏插入圖片描述
可以看到這個端口被佔用了(沒被佔用的時候不顯示任何東西),查看佔用端口的PID

sudo lsof -i:8800  //sudo lsof -i:<端口號>

在這裏插入圖片描述
我們要把它kill掉,留出空位來運行我們的項目。kill後再次查看端口,可以看到這個端口已經騰出來了(查詢爲空)

sudo kill -9 26191  //sudo kill -9 <PID>

在這裏插入圖片描述
5.8 使用java指令運行項目jar包,這樣我們的項目就算部署成功了

java -jar ***.jar  //***爲你的jar包名

在這裏插入圖片描述
5.9 隨便找個瀏覽器,搜索欄輸入http://公網ip:端口號 就可以搜索到你的網站了(如果你跟我一樣,買的是學生優惠版的,它的帶寬速度只有1M,第一次載入會非常慢,耐心等等,等有了錢,升級個好一點的吧)
在這裏插入圖片描述
5.10 還沒完呢,這種啓動方式是一次啓動,當我們關掉Xshell的時候,我們的網站又訪問不上了,又得重新打開Xshell,執行 java -jar ***.jar。所以我們要使用下面的方法讓這個項目在服務器上自動不間斷地跑.

5.11 關掉重啓一下Xshell(這樣的話原本的項目就停掉了),創建並編寫文件 start.sh,向其中添加字段 : java -jar ***.jar 。按ESC + :wq + 回車鍵保存退出
在這裏插入圖片描述
5.12 給這個start.sh 管理員權限,然後用nohup指令不間斷地運行(nohup指令:忽略所有掛斷(SIGHUP)信號,不掛斷地運行命令)

chmod 777 start.sh  //賦予管理員權限
nohup  ./start.sh &  //不間斷運行文件內的指令

在這裏插入圖片描述
5.13 使用

netstat -anp | grep 8800

查看端口使用情況
在這裏插入圖片描述
5.14 把Xshell關掉,在瀏覽器上輸入http://公網IP:8800 發現項目還是可以進入,說明我們已經設置成功了。至此springboot項目部署到阿里雲服務器上完結。

5.15 但是有沒有發現我們的網站跟別人的不太一樣?別人訪問網站都是www.***.com的格式的,而我們卻要打一串複雜難記的數字。其實www.***.com是一個類似指針的東西(叫做域名),它指向的地址就是我們公網IP。這個指針在阿里雲上就可以申請

5.16在阿里雲官網搜索“域名”
在這裏插入圖片描述

5.17 找到和自己心意的域名,選好後在右邊的域名清單裏給錢結算
在這裏插入圖片描述
5.18 進入控制檯,可以看到你購買的域名
在這裏插入圖片描述

5.19 選擇你要操作的域名,點擊“解析”
在這裏插入圖片描述
5.20 然後按我下面的格式填好,確定保存。
在這裏插入圖片描述
5.21 然後我們就可以通過 www.域名.com:8800 的方式訪問我們的網站了
在這裏插入圖片描述
5.22 然後發現,好像還是不對啊,別人家的網站後面不需要帶端口號啊。emmmmm,這個就牽扯到備案的問題了,阿里雲的客服告訴我,需要購買3個月後的服務器才具備備案資格,備案審覈成功後我們才能通過 www.域名.com訪問網站。等着吧,現在只能將就用着了。







--------------------------------------------------結語----------------------------------------------------
首先,我還是個正在實習的新手,文中有什麼疏漏的地方,還望各位大佬在下方評論區指出。有什麼寫得不清楚的地方也可以在評論一起探討。我在安裝部署這些東西的時候踩了賊多坑,感慨萬分,本着幫助別人就是幫助過去的自己的想法,寫了這篇長文出來,希望能幫到大家。

另,安利幾篇我在安裝過程中看到的幾篇比較有用的文章給大家,但裏面有也有一些細節是錯誤的,大家借鑑的時候自己勘誤。
https://blog.csdn.net/whh18254122507/article/details/78011713
https://blog.csdn.net/pts315414/article/details/79076230
https://blog.csdn.net/qq_34975710/article/details/83989642
https://yq.aliyun.com/articles/292609
https://blog.csdn.net/weixin_39800144/article/details/78836289
https://blog.csdn.net/sinat_30436087/article/details/80669767

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章