最近用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