前面給大家講了一個(gè)點(diǎn)餐系統(tǒng)的開發(fā),包括java點(diǎn)餐后臺(tái)和微信點(diǎn)餐小程序。可是都是教大家如何在本地把項(xiàng)目跑起來。今天就來教大家如何把這個(gè)點(diǎn)餐系統(tǒng)部署到服務(wù)器,實(shí)現(xiàn)商用。
?
本節(jié)知識(shí)點(diǎn)- 1,使用springboot開發(fā)java項(xiàng)目
- 2,小程序后臺(tái)的開發(fā)
- 3,小程序后臺(tái)部署到服務(wù)器
- 4,java項(xiàng)目部署到服務(wù)器
- 5,springboot項(xiàng)目部署到服務(wù)器
- 1,需要購(gòu)買一臺(tái)騰訊云服務(wù)器
- 2,需要開發(fā)一個(gè)springboot后臺(tái)項(xiàng)目
- 3,需要購(gòu)買一個(gè)域名,并做備案。
- 4,需要配置你的服務(wù)器環(huán)境 jdk,mysql(下面會(huì)做講解)
我們默認(rèn)你上面的準(zhǔn)備工作都做好了,下面我們就來開始學(xué)習(xí)把后臺(tái)項(xiàng)目部署到服務(wù)器,讓所有人都可以訪問到你的服務(wù)器。
一,首先創(chuàng)建一個(gè)springboot(java項(xiàng)目)1,創(chuàng)建springboot項(xiàng)目,選用jdk1.8
2,填寫包名,選擇配置,這些保持默認(rèn)即可
3,添加一些項(xiàng)目依賴,使用最新springboot版本2.1.7
4,項(xiàng)目名,項(xiàng)目目錄設(shè)置??梢员3帜J(rèn)
5,導(dǎo)入依賴,下面兩種方式都可以。
6,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的后臺(tái)數(shù)據(jù)接口
如果上面這些簡(jiǎn)單的創(chuàng)建一個(gè)項(xiàng)目的步驟你不是很懂,可以看下我錄制的java零基礎(chǔ)視頻:https://edu.csdn.net/course/detail/23443
- 7,本地運(yùn)行項(xiàng)目
8,運(yùn)行成功的標(biāo)示,在run里看到控制臺(tái)日志顯示項(xiàng)目端口是 8080
9,瀏覽器里訪問本地項(xiàng)目,查看訪問效果??梢钥吹轿覀兂晒Φ脑L問到了后臺(tái)數(shù)據(jù)。
上面給大家演示的是在idea開發(fā)者工具里啟動(dòng)的項(xiàng)目,我們正常部署服務(wù)器的時(shí)候,肯定不會(huì)有開發(fā)者工具的,所以我們接下來要先學(xué)會(huì)項(xiàng)目打包,然后在本地通過命令行的方式運(yùn)行后臺(tái)項(xiàng)目。
- 1,項(xiàng)目打包
- 2,打包成功
- 3,修改jar的名字(也可以不改名字,我是覺得這個(gè)jar名字太長(zhǎng),所以改一個(gè)短的)
我這里改名為qcl80.jar 建議大家也改成這個(gè)名字,因?yàn)楹竺孢\(yùn)行腳本里用的就是qcl80這個(gè)名字,大家和我保持一致,省得出問題。
1,把上面的qcl80.jar這個(gè)文件拖動(dòng)到我們的項(xiàng)目里,并打開idea自帶的命令行
2,命令行里輸入 ls
3,命令行里輸入 java -jar qcl80.jar
注意:如果你這里提示java命令不存在,你需要配置下java的環(huán)境變量。這里不做講解,自己百度下 ‘java 環(huán)境變量’ 就可以找到一大堆教程。
- 4,輸入上面命令后,回車鍵,即可啟動(dòng)項(xiàng)目
這時(shí)候再去瀏覽器里訪問,還是可以訪問到的
我們前面三步,都是在自己的本地電腦啟動(dòng)的后臺(tái)項(xiàng)目,這樣我們只能在自己的電腦瀏覽器訪問到,別人是訪問不到的,如果想讓別人訪問,就需要把我的qcl80.jar這個(gè)文件傳到服務(wù)器上,并且在服務(wù)器上通過命令行啟動(dòng)這個(gè)java項(xiàng)目,這樣別人才可以訪問到
所以我們接下來要講服務(wù)器環(huán)境的搭建。
- 1,首先我們要買一臺(tái)云服務(wù)器(推薦阿里云或者騰訊云)
- 2,買完服務(wù)器后我們登錄服務(wù)器后臺(tái),這里以騰訊云為例。
- 3,點(diǎn)擊登錄
重置密碼方式 - 4,輸入實(shí)力的賬號(hào)和密碼,登錄linux服務(wù)器
- 5,登錄成功
大家不要看到一堆命令行,就頭疼,我接下來會(huì)教大家如何一步步配置服務(wù)器環(huán)境的。大家只需要跟著我的步驟,一步步來就可以了。
- 1,采用yum安裝jdk1.8,非常簡(jiǎn)單
yum search java|grep jdk 查看yum庫(kù)中jdk的版本
yum -y install java-1.8.0-openjdk* 安裝jdk8
耐心的等待jdk的安裝,大概2分鐘左右,出現(xiàn)下面標(biāo)志,即代表安裝成功
- 2,檢查jdk是否安裝成功
命令行里輸入 java -version 出現(xiàn)下面標(biāo)示,可以看到我們的jdk版本 1.8.0_222
我們第五步已經(jīng)在linux服務(wù)器上成功的安裝了jdk,接下來就是要想辦法把qcl80.jar傳到服務(wù)器了。可能有同學(xué)要問了,你部署服務(wù)器,不要在linux服務(wù)器里安裝tomcat嗎,其實(shí)我們用springboot開發(fā)出來的jar包,已經(jīng)有內(nèi)置的tomcat了。所以我們不用再部署tomcat了,只需要把qcl80.jar這個(gè)文件上傳到服務(wù)器,然后用java命令啟動(dòng)即可。
我們上傳文件到Linux服務(wù)器用下面這個(gè)軟件
你只需要去百度下你電腦對(duì)應(yīng)系統(tǒng)的安裝包,安裝即可。具體怎么安裝這里就不教大家了。
下面教下大家如何使用FileZilla上傳文件到服務(wù)器。
1,打開FileZilla軟件, 鏈接服務(wù)器
2,去服務(wù)器根目錄看看
3,上傳文件到home文件里,如果在父親根目錄沒有home文件,可以自己新建。
到這里我們就成功的上傳qcl80.jar到服務(wù)器了。下面就教大家如何在服務(wù)器里啟動(dòng)我們的項(xiàng)目。
1,首先重復(fù)上面第四步登錄服務(wù)器。然后在服務(wù)器里輸入
cd.. #用來返回服務(wù)器根目錄 ls #顯示當(dāng)前根目錄有那些文件
cd home #進(jìn)入home文件 ls #顯示home文件里都有那些子文件,可以看到我們的qcl80.jar
2,啟動(dòng)java項(xiàng)目
java -jar qcl80.jar
3,項(xiàng)目啟動(dòng)成功,出現(xiàn)下面的標(biāo)示,即代表項(xiàng)目啟動(dòng)成功
4,訪問我們服務(wù)器的項(xiàng)目
通過上圖可以看到,我們通過公網(wǎng)ip+8080端口,可以成功的訪問到我們服務(wù)器的數(shù)據(jù)了。
- 我們?cè)儆檬謾C(jī)瀏覽器試試
可以看到我們?cè)谑謾C(jī)瀏覽器里也可以訪問到后臺(tái)數(shù)據(jù)了。你把上面的這個(gè)網(wǎng)址發(fā)給你朋友,你朋友應(yīng)該也可以訪問到數(shù)據(jù)了。
到這里我們就成功的把一個(gè)java項(xiàng)目部署到服務(wù)器,并成功的可以讓任何人訪問了,但是有個(gè)問題,你用公網(wǎng)ip做域名,很容易被封的,基本上能成功訪問幾次以后,就會(huì)被拒絕訪問了
所以我們接下來還要講解如何通過域名訪問我們的服務(wù)器
我會(huì)把這些錄制成視頻來給大家做講解,
講解視頻地址:https://study.163.com/course/courseMain.htm?courseId=1209428915
八,服務(wù)器綁定域名我們?cè)谧鲇蛎壎ㄖ?,需要你先自己去注?cè)一個(gè)域名,比如我注冊(cè)的域名是:“www.saibanmall.com”,我這里還是以騰訊云為例
-
1,登錄騰訊云后臺(tái),找到自己的域名列表,點(diǎn)擊解析
-
2,添加解析規(guī)則
-
3,綁定自己服務(wù)器的公網(wǎng)ip到解析規(guī)則
-
4,我們主要設(shè)置下面兩個(gè)解析規(guī)則
這樣把我們服務(wù)器公網(wǎng)ip和域名綁定以后,就可以通過域名訪問我們的服務(wù)器了,效果如下。
再來看下手機(jī)瀏覽器訪問的效果
還有我們小程序訪問的效果。
到這里我們就成功的部署好我的后臺(tái)服務(wù)器了,但是還有幾個(gè)問題
- 1,小程序上線的話需要https請(qǐng)求,所以我們后面還會(huì)講我們的服務(wù)器如何支持https
- 2,我們通過java -jar qcl80.jar部署的java項(xiàng)目,不能后臺(tái)運(yùn)行。所以我們后面還會(huì)講如何讓我們的java項(xiàng)目常駐后臺(tái)運(yùn)行。
我們通過上面的方法,會(huì)有一個(gè)問題,就是我們命令行窗口關(guān)閉時(shí),會(huì)導(dǎo)致java項(xiàng)目停止,所以我們要通過腳本實(shí)現(xiàn)java項(xiàng)目在后臺(tái)長(zhǎng)期運(yùn)行。
springboot生成的jar在阿里云的linux服務(wù)器后臺(tái)運(yùn)行
通過創(chuàng)建stop.sh , start.sh ,run.sh這三個(gè)腳本文件來實(shí)現(xiàn)后臺(tái)長(zhǎng)久運(yùn)行springboot
這里我把運(yùn)行的qcl80.jar ,start .sh,stop.sh ,run.sh都放在home下的jar目錄下
- 1,創(chuàng)建stop.sh
vim stop.sh 創(chuàng)建文件然后把下面內(nèi)容復(fù)制進(jìn)去,一定要把qcl80.jar替換成你的jar
#!/bin/bash PID=$(ps -ef | grep qcl80.jar | grep -v grep | awk '{ print $2 }') if [ -z "$PID" ] then echo Application is already stopped else echo kill $PID kill $PID fi
- 2,創(chuàng)建start.sh,
這里我們用80端口,這樣可以直接通過ip訪問,不用再輸端口了
vim start.sh 輸入這個(gè)命令后然后把下面的內(nèi)容復(fù)制進(jìn)去
#!/bin/bash nohup java -jar qcl80.jar --server.port=80 &
- 3,創(chuàng)建run.sh
整合了關(guān)閉和啟動(dòng)的腳本:run.sh,由于會(huì)先執(zhí)行關(guān)閉應(yīng)用,然后再啟動(dòng)應(yīng)用,這樣不會(huì)引起端口沖突等問題,適合在持續(xù)集成系統(tǒng)中進(jìn)行反復(fù)調(diào)用。
把下面內(nèi)容復(fù)制進(jìn)去,一定要注意復(fù)制時(shí)不能少東西
#!/bin/bash echo stop application source stop.sh echo start application source start.sh
- 4,start .sh,stop.sh ,run.sh都創(chuàng)建后
./run.sh 運(yùn)行run.sh腳本
如果遇到?jīng)]有權(quán)限運(yùn)行的問題,就在run.sh所在目錄下執(zhí)行
chmod u+x *.sh 這樣就ok了。
執(zhí)行完以后,我們可以去nohup.out文件中查看啟動(dòng)的log
cat nohup.out 這個(gè)命令可以查看jar啟動(dòng)的log
這個(gè)時(shí)候我們的項(xiàng)目就啟動(dòng)了,就可以通過下面這個(gè)網(wǎng)址訪問項(xiàng)目了:http://saibanmall.com/
上面start.sh,stop.sh,run.sh如果覺得寫起來麻煩的話,也可以直接獲取我寫好的。
關(guān)于服務(wù)器的部署我后面也會(huì)錄制視頻出來,敬請(qǐng)關(guān)注。
?
?
本文摘自 :https://blog.51cto.com/u