(新手向)從零開始將springboot項目部署到雲服務器(ecs)上

      最近用springboot寫了一個個人博客項目,正好之前趁着活動免費領取了一個阿里雲的雲服務器ecs,於是準備把項目部署到服務器上。對於我這種純新手來說,部署過程可謂是踩坑無數,好在最後還是成功了。
      這裏跟大家分享一下完整的步驟,儘量幫助大家排坑。

      2020.4.3更新:
      最近買了一個域名,通過解析和備案,可以通過域名直接訪問項目了嘻嘻
歡迎大家來我的博客玩————君の名は
項目源碼地址:https://github.com/Mitsuha666/blog

1. 購買和配置雲服務器

阿里雲騰訊雲等等的都可以,我選擇的系統是centos7,關於服務器詳細的博客網上有很多了,我這裏就不贅述了。

2. 本機下載XShell 6 與XFtp 6

XShell 6:用於遠程連接你的服務器
XFtp 6:用於把本地文件上傳至雲服務器
官網下載地址:Xmanager中文官網

下載安裝後,打開xftp6,新建一個會話(連接):
在這裏插入圖片描述
設置會話屬性:
在這裏插入圖片描述
連接完成,可以看到服務器的文件目錄:
在這裏插入圖片描述
xshell6的連接方式和xftp6基本相同,這裏就不放圖了

3. 雲服務器安裝寶塔面板

由於我是新手,對linux命令什麼的都還不瞭解,就先用寶塔救急,大家日後還是要學習linux的呀,畢竟咱作爲程序員,linux肯定是要會的。

打開xshell6,連接到服務器:
在這裏插入圖片描述
輸入命令:選擇自己的操作系統版本的命令,回車執行

Centos安裝命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

Ubuntu/Deepin安裝命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

安裝完成後,可以看到一個url地址,通過它可以訪問你的寶塔面板界面
記住這裏的用戶名和密碼,用來登錄寶塔。
注意:如果訪問不了寶塔,去服務器控制檯安全組看看有沒有開放寶塔默認的端口號8888
在這裏插入圖片描述
輸入上面的用戶名和密碼
在這裏插入圖片描述

登錄成功後進入寶塔界面,第一次進入會提示安裝環境,安裝推薦的LNMP,選擇編譯安裝(需要幾個小時時間安裝)。

在這裏插入圖片描述
至此,寶塔配置完畢。

4. 雲服務器安裝jdk

先在本地把linux版本的jdk壓縮包下載好

由於官網下載要註冊oracle的賬號
貼一個好心博主的下載地址:https://blog.csdn.net/qq_21187515/article/details/84850814
下載jdk的oracle官網:
http://www.oracle.com/

再通過xftp6把壓縮包傳輸到服務器上
這裏我把壓縮包放在了/usr/java/jdk文件夾中:
在這裏插入圖片描述
用xshell6執行解壓操作:
注意:要在壓縮包當前文件夾下執行命令

cd /usr/java/jdk
tar -zxvf jdk-8u11-linux-x64.tar.gz

解壓完畢後,需要配置環境變量,
這裏我們用xftp修改etc目錄下的bashrc文件,在最前面添加:

export JAVA_HOME=/usr/java/jdk/jdk1.8.0_11 
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

然後保存文件退出
打開xshell運行指令:

source /etc/bashrc

然後永久環境變量就可以生效啦

執行java -version查看是否配置成功
在這裏插入圖片描述

5.Navicat連接雲服務器的mysql

1)本地導出數據庫.sql文件,把自己項目的數據庫文件導出
在這裏插入圖片描述
2)連接雲數據庫,SSH和常規的信息都要寫
在這裏插入圖片描述
在這裏插入圖片描述
3)在雲服務器的mysql中,新建同名數據庫,執行.sql文件即可

6. 打包SpringBoot項目爲jar包,上傳到雲服務器上並運行

這裏有一個坑:springboot配置文件中數據庫密碼是雲服務器上數據庫的密碼,錯了會導致項目無法連接到數據庫。
在這裏插入圖片描述
雲服務器數據庫的密碼可以在寶塔裏面找到:
在這裏插入圖片描述

在idea中打開項目,右側maven,先執行clean,再package。
在這裏插入圖片描述
執行成功後會生成一個.jar文件,把它放到雲服務器中:
在這裏插入圖片描述
在當前目錄下,執行命令:

java -jar xxx.jar

大功告成!!!
在這裏插入圖片描述
通過IP:端口號,即可訪問項目
在這裏插入圖片描述

7.通過域名訪問項目

1.首先你需要購買一個域名

2.域名購買後需要實名認證

3.解析域名

阿里雲的控制檯裏有域名解析的新手引導,可以很方便的完成域名解析
在這裏插入圖片描述
4.域名備案

解析完成後,如果想通過域名訪問服務器ip,需要進行備案,備案的週期一般在7-20天左右,我是審覈了11天通過的。

5.訪問網站

備案成功後,就可以通過域名:端口號的方式訪問項目了
跟之前IP:端口號的形式類似
如果覺得加上端口號太麻煩,可以把項目的端口號改成80
當訪問域名的時候,端口默認指定的是80;

如果80端口沒有其他程序佔用的情況下,就可以直接通過域名訪問項目了

但是往往事與願違,我的80端口就被佔用了
輸入命令,

lsof -i:80

可以看到正在佔用我的80端口的進程,nginx和AliYunDun
在這裏插入圖片描述
示例解決方法:

1.將nginx的默認端口從80改成別的

2.幹掉AliYunDun,輸入下面的命令

sudo fuser -k 80/tcp

當80端口沒有被佔用的時候,即可通過域名直接訪問項目了!

8.項目在服務器上永久運行方法

在xshell中通過命令啓動項目後,如果關閉xshell和服務器的遠程連接,項目就會停止運行,怎麼才能讓項目在服務器的後臺一直運行呢?
方法如下:

(1)在xshell輸入命令:

nohup 你的shell命令 &

例:我的命令

nohup java -jar blog.jar &

(2)回車,使終端回到shell命令行;

(3)輸入exit命令退出終端:exit

(4)現在可以關閉你的終端軟件了,等過足夠的時間,讓你的shell命令執行完了再上去看結果吧。

其中,nohup命令可以讓你的shell命令忽略SIGHUP信號,即可以使之脫離終端運行;“&”可以讓你的命令在後臺運行。

以脫離終端的方式在後臺運行shell命令有這樣幾個好處:只要你執行過了命令,那麼你的網絡中斷不會對你有任何影響,並且你就可以關閉終端軟件了。

如果需要終止後臺允許的項目,使用kill命令終止:

kill -9  PID

9.shell命令報錯

出現類似報錯

-bash: nohup: command not found

解決方法:

在/etc/profile文件中加上:

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

然後執行:保存對配置文件的修改!

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