日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【超详细附参考】阿里云部署spring项目基本流程详解及踩坑经验

發(fā)布時(shí)間:2024/3/13 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【超详细附参考】阿里云部署spring项目基本流程详解及踩坑经验 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

      • 環(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中采用的配置方式

server.port=8080 spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://localhost:3306/library spring.datasource.username=root spring.datasource.password=xxxx spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver

適用于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)境變量

vim /etc/profile

在最底下加入:

#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

[root@localhost ~]# java -versionjava version "1.7.0_65"OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)[root@localhost ~]# which java/usr/bin/java[root@localhost ~]# ls -lrt /usr/bin/javalrwxrwxrwx. 1 root root 22 Aug 17 15:12 /usr/bin/java -> /etc/alternatives/java[root@localhost ~]# ls -lrt /etc/alternatives/javalrwxrwxrwx. 1 root root 46 Aug 17 15:12 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java[root@localhost ~]# [root@localhost ~]# cd /usr/lib/jvm[root@localhost jvm]# lsjava-1.6.0-openjdk-1.6.0.0.x86_64 java-1.7.0-openjdk-1.7.0.65.x86_64 jre jre-1.6.0 jre-1.6.0-openjdk.x86_64 jre-1.7.0 jre-1.7.0-openjdk.x86_64 jre-openjdk[root@localhost jvm]#

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)境:

yum install java-1.8.0-openjdk-devel.x86_64

運(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下載:

wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.79/bin/apache-tomcat-8.5.79.tar.gz

下載后解壓:

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 -uroot -p

這樣安裝的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 mysqld start

停止命令:

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

wget https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz

解壓:

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.5

classpath和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 -uroot -p mysql> create database abc; # 創(chuàng)建數(shù)據(jù)庫(kù) mysql> use abc; # 使用已創(chuàng)建的數(shù)據(jù)庫(kù) mysql> set names utf8; # 設(shè)置編碼 mysql> source /home/abc/abc.sql # 導(dǎo)入備份數(shù)據(jù)庫(kù),這里路徑替換為自己上傳sql文件的路徑

檢查是否安裝成功:

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:

/opt/tomcat8.5/bin/shutdown.sh /opt/tomcat8.5/bin/startup.sh

comcat會(huì)自動(dòng)解析。
但是這里我沒(méi)有成功,可能是因?yàn)椴欢畃roject structure里面的配置。

命令行打jar包

將Project文件夾整個(gè)上傳到服務(wù)器上任意喜歡的位置。
cd到項(xiàng)目文件夾中,執(zhí)行:

mvn package

執(zhí)行結(jié)束后

ll

便能看見(jiàn)當(dāng)前目錄下多了一個(gè)jar包。
Xftp中將該包保存到自己想要的地方備份。因?yàn)閙vn clean后會(huì)清除。

命令行打war包

需要修改項(xiàng)目:
1.修改pom,將

<packaging>jar</packaging>

改成

<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包的遺留:

mvn clean

這次打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:

/opt/tomcat8.5/bin/shutdown.sh /opt/tomcat8.5/bin/startup.sh

comcat會(huì)自動(dòng)解析。
之后便可以訪問(wèn)了。

總結(jié)

以上是生活随笔為你收集整理的【超详细附参考】阿里云部署spring项目基本流程详解及踩坑经验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。