【超详细附参考】阿里云部署spring项目基本流程详解及踩坑经验
文章目錄
- 環(huán)境及前期準(zhǔn)備
- 基本流程
- 購(gòu)買云服務(wù)器
- 連接云服務(wù)器
- 工具準(zhǔn)備
- Xshell連接:
- Xftp連接:
- 環(huán)境配置
- JDK安裝
- Tomcat安裝
- Mysql安裝
- Maven安裝
- 項(xiàng)目打包部署
- 數(shù)據(jù)庫(kù)導(dǎo)入
- 項(xiàng)目打包
- idea直接打包
- 命令行打jar包
- 命令行打war包
- 正式部署
- jar
- war
環(huán)境及前期準(zhǔn)備
操作系統(tǒng):WIN10
IDE:IDEA
數(shù)據(jù)庫(kù):MySql,Navicat
一個(gè)基于Spring Boot,MySql,MyBatics寫(xiě)好的簡(jiǎn)單Web項(xiàng)目,能夠在localhost上運(yùn)行并返回json。
IDEA連接數(shù)據(jù)庫(kù)時(shí)遇到的問(wèn)題:Failed to determine suitable jdbc url.
原因:本地主機(jī)安裝的MySql為先前的5.1,而IDEA項(xiàng)目的application.properties中采用的配置方式
適用于MySql5.6以后的版本
解決方法:卸載原有的MySql,重裝了新版本。
參考:
https://www.jianshu.com/p/711c1c7bce4c
基本流程
參考:
https://blog.csdn.net/qq_41635167/article/details/81096075
里面闡述了服務(wù)器的購(gòu)買,訪問(wèn),環(huán)境的配置以及部署的全過(guò)程。但是他的阿里云控制臺(tái)版本比較老舊,且對(duì)于具體的配置過(guò)程有些地方描述不夠全面,還需參考其他資料。
購(gòu)買云服務(wù)器
因?yàn)榘⒗镌频陌咐^多,這里選擇了阿里云服務(wù)器,因?yàn)椴皇谴箨憣W(xué)生無(wú)法進(jìn)行學(xué)生認(rèn)證,也已經(jīng)不是新用戶,一般選用ECS:https://www.aliyun.com/product/ecs?spm=5176.19720258.J_3207526240.32.249a2c4a3g9H1X
支付寶掃碼登陸后,選擇實(shí)例。這里按需選擇,看計(jì)算的需求。我選擇了一個(gè)通用型g7的實(shí)例。對(duì)于地域的選擇,選用靠近客戶地域的。如果只是學(xué)習(xí)需要就選離自己近的。對(duì)于預(yù)裝環(huán)境的選擇,一般推薦CentOS,但是阿里云顯示:
因此選用了Alibaba Cloud Linux,操作與CentOS大致相同。
點(diǎn)擊下一步,網(wǎng)絡(luò)與安全組可以先默認(rèn),下一步
系統(tǒng)配置中配置一下密碼和密鑰(也可購(gòu)買后配置,但是改版了我沒(méi)找到在哪)下一步
分組設(shè)置目前沒(méi)有需要,確認(rèn)訂單。
在購(gòu)買了云服務(wù)器后,點(diǎn)擊右上角控制臺(tái)
點(diǎn)擊左邊三根橫線
點(diǎn)擊云服務(wù)器ECS
在概覽中便可以看到新購(gòu)買的實(shí)例。
點(diǎn)擊實(shí)例,點(diǎn)擊安全組
進(jìn)入安全組,在入方向手動(dòng)添加端口3306(MySql使用),8080(Spring項(xiàng)目通常用到,我的項(xiàng)目常用9001),21,22。
實(shí)例有兩個(gè)IP,公網(wǎng)IP和私網(wǎng)IP,這里復(fù)制公網(wǎng)IP。連接服務(wù)器需要使用。
遇到的問(wèn)題:
阿里云實(shí)例默認(rèn)禁用ssh導(dǎo)致無(wú)法連接的問(wèn)題
https://blog.csdn.net/abracadabraa/article/details/125212934
連接云服務(wù)器
工具準(zhǔn)備
這里用到兩個(gè)工具:XShell,Xftp。
Xshell官網(wǎng)下載:https://www.xshell.com/zh/xshell-download/
Xftp官網(wǎng)下載:https://www.xshell.com/zh/xftp-download/
選擇:家庭和學(xué)校用的免費(fèi)許可,要求你填一個(gè)電子郵箱用來(lái)接收下載鏈接。下載后無(wú)腦安裝就好啦。
Xshell連接:
打開(kāi)Xshell,點(diǎn)擊新建會(huì)話
在主機(jī)中輸入自己服務(wù)器的IP地址,在用戶身份認(rèn)證中輸入用戶名和密碼,點(diǎn)擊連接,點(diǎn)確定,當(dāng)屏幕顯示welcome to alibaba cloud時(shí),說(shuō)明你連接成功了。
Xftp連接:
和Xshell類似:
進(jìn)入后左邊是主機(jī)右邊是服務(wù)器:
便可以可視化管理服務(wù)器上的文件了。可以通過(guò)拖拽將主機(jī)的文件上傳到服務(wù)器。右鍵進(jìn)行復(fù)制剪切刪除等。
環(huán)境配置
登錄Xshell
JDK安裝
yum -y install java-1.8.0-openjdk.x86_64屏幕上出現(xiàn)Complete時(shí),說(shuō)明安裝成功了。并且在命令行輸入java -version也能正常顯示。
但是輸入javac報(bào)錯(cuò)
運(yùn)行maven報(bào)錯(cuò):
The JAVA_HOME environment variable is not defined correctly linux maven
原因:
1.需要配置環(huán)境變量
在最底下加入:
#set java environment export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64 export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$JRE_HOME/bin:$JAVA_HOME/bin其中,JAVA_HOME的路徑尋找:
參考:https://blog.csdn.net/u013991521/article/details/78292136
2.需要配置jdk
按照步驟去配置了/etc/profile的環(huán)境變量,發(fā)現(xiàn)Java -version能找到,但是javac -version的命令找不到。發(fā)現(xiàn)/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64/文件夾下盡然只有jre文件夾,其他啥都沒(méi)有。
參考:https://www.codeleading.com/article/58305659278/
后來(lái)在網(wǎng)上搜到,這是因?yàn)閛penjdk安裝完只有默認(rèn)的運(yùn)行環(huán)境,沒(méi)有開(kāi)發(fā)環(huán)境。
因此需要安裝jdk開(kāi)發(fā)環(huán)境:
運(yùn)行結(jié)束后/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64文件夾內(nèi)便有l(wèi)ib、bin等文件了。
Tomcat安裝
tomcat官網(wǎng),這里選擇tomcat8:
https://tomcat.apache.org/download-80.cgi
右鍵選擇復(fù)制鏈接地址,cd /opt切換到opt目錄下用wget下載:
下載后解壓:
tar xzf apache-tomcat-8.5.79.tar.gz為了方便命令行操作,執(zhí)行命令進(jìn)行重命名
mv apache-tomcat-8.5.79 tomcat8.5啟動(dòng)tomcat:
/opt/tomcat8.5/bin/startup.sh顯示tomcat started說(shuō)明啟動(dòng)成功,現(xiàn)在可以在外網(wǎng)訪問(wèn)http://服務(wù)器地址:8080,顯示 Apache的頁(yè)面說(shuō)明訪問(wèn)成功
Mysql安裝
同樣cd到/opt下(FHS將/opt定義為 “為安裝附加應(yīng)用軟件包而保留”,即/opt是linux系統(tǒng)預(yù)留給第三方軟件安裝的位置)
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql mysql-server mysql-devel -y顯示complete說(shuō)明安裝成功。
登錄:
這樣安裝的mysql默認(rèn)是沒(méi)有密碼的,可以自行設(shè)置。
遇到問(wèn)題:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因:
由于“socket”文件是由mysql服務(wù)運(yùn)行時(shí)創(chuàng)建的,如果提示“ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘***’ (2)”,找不到“socket”文件,我們首先要確認(rèn)的是mysql服務(wù)是否正在運(yùn)行。
參考:
https://blog.csdn.net/weixin_45777669/article/details/115671283
發(fā)現(xiàn)是因?yàn)閙ysql服務(wù)沒(méi)有啟動(dòng)
啟動(dòng)命令:
停止命令:
service mysql stop注意:MySQL中的語(yǔ)句帶分號(hào)。
Maven安裝
參考:
https://blog.csdn.net/qq_41937388/article/details/105334987
https://developer.aliyun.com/article/744921
首先,在Xftp上創(chuàng)建一個(gè)文件夾maven
cd到該文件夾下
下載maven的包:
官網(wǎng):http://maven.apache.org/download.cgi
https://developer.aliyun.com/article/744921
解壓:
tar -zxvf apache-maven-3.8.5-bin.tar.gz設(shè)置全局變量:
vim /etc/profile在最后添加
export MAVEN_HOME={創(chuàng)建maven文件夾的目錄}/maven/apache-maven-3.8.5classpath和path也需要更改:
export CLASSPATH=.:$JAVA_HOME/lib:$MAVEN_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$MAVEN_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/bin使配置生效:
source /etc/profile查看安裝是否成功:
mvn -version項(xiàng)目打包部署
參考:https://www.bilibili.com/video/BV1uK411p7Bp?spm_id_from=333.999.0.0
數(shù)據(jù)庫(kù)導(dǎo)入
首先在Navicat中:雙擊連接啟動(dòng),右鍵想要備份的數(shù)據(jù)庫(kù),選擇轉(zhuǎn)儲(chǔ)SQL文件,選擇結(jié)構(gòu)及數(shù)據(jù)。選擇想要保存的位置。
將導(dǎo)出的數(shù)據(jù)庫(kù)拖拽到Xftp中自己想要存儲(chǔ)的位置上,保存路徑。
在Xshell中
首先啟動(dòng)Mysql:
檢查是否安裝成功:
mysql> show databases; mysql> use abs; mysql> show tables;參考:https://www.runoob.com/mysql/mysql-database-import.html
項(xiàng)目打包
部署之前需要修改的配置:
application.properties中;需要將localhost修改成服務(wù)器的ip,修改用戶名密碼改成服務(wù)器中設(shè)置的。
在pom文件中修改名字,版本號(hào)等信息。
注意檢查idea的tomcat,sql等的版本與服務(wù)器中的版本一致。
idea直接打包
參考:
https://cloud.tencent.com/developer/article/1112106?from=15425
https://blog.csdn.net/github_38336924/article/details/82422888
idea可以直接打包,具體操作是:
file->project structure
選擇project,module,libraries,facet,artifacts后,點(diǎn)擊apply
build->build artifacts,到設(shè)定的文件夾中去找到war包,上傳到服務(wù)器的comcat8.5/webapps中。
然后直接重啟comcat:
comcat會(huì)自動(dòng)解析。
但是這里我沒(méi)有成功,可能是因?yàn)椴欢畃roject structure里面的配置。
命令行打jar包
將Project文件夾整個(gè)上傳到服務(wù)器上任意喜歡的位置。
cd到項(xiàng)目文件夾中,執(zhí)行:
執(zhí)行結(jié)束后
ll便能看見(jiàn)當(dāng)前目錄下多了一個(gè)jar包。
Xftp中將該包保存到自己想要的地方備份。因?yàn)閙vn clean后會(huì)清除。
命令行打war包
需要修改項(xiàng)目:
1.修改pom,將
改成
<packaging>war</packaging>在依賴中加入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope> </dependency>排除掉自帶的tomcat
2.在入口類的同級(jí)目錄中新建一個(gè)類,內(nèi)容指向入口類:
package cs.hku.metalibrary;import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;public class SpringBootStartApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(MetaLibraryApplication.class);} }將更新上傳服務(wù)器。
清理掉打jar包的遺留:
這次打war包:
mvn package等待一會(huì)便能在當(dāng)前目錄看到打好的war包了。
正式部署
jar
jar包可以直接運(yùn)行:
nohup java -jar xxxx.jar &便可以訪問(wèn)了。
遇到問(wèn)題時(shí)查看日志:
https://blog.csdn.net/abracadabraa/article/details/125230249
war
war包打好后需要拷貝到文件夾comcat8.5/webapps中。
然后直接重啟tomcat:
comcat會(huì)自動(dòng)解析。
之后便可以訪問(wèn)了。
總結(jié)
以上是生活随笔為你收集整理的【超详细附参考】阿里云部署spring项目基本流程详解及踩坑经验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 技术解析:一文看懂 Anolis OS
- 下一篇: Unity的摄像机拉近拉远和旋转脚本实现