文章目录

  • 环境及前期准备
  • 基本流程
    • 购买云服务器
    • 连接云服务器
      • 工具准备
      • Xshell连接:
      • Xftp连接:
    • 环境配置
      • JDK安装
      • Tomcat安装
      • Mysql安装
      • Maven安装
  • 项目打包部署
    • 数据库导入
    • 项目打包
      • idea直接打包
      • 命令行打jar包
      • 命令行打war包
    • 正式部署
    • jar
    • war

环境及前期准备

操作系统:WIN10
IDE
:IDEA
数据库:MySql,Navicat
一个基于Spring Boot,MySql,MyBatics写好的简单Web项目,能够在localhost上运行并返回json。

IDEA连接数据库时遇到的问题:Failed to determine suitable jdbc url.
原因:本地主机安装的MySql为先前的5.1,而IDEA项目的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
里面阐述了服务器的购买,访问,环境的配置以及部署的全过程。但是他的阿里云控制台版本比较老旧,且对于具体的配置过程有些地方描述不够全面,还需参考其他资料。

购买云服务器

因为阿里云的案例较多,这里选择了阿里云服务器,因为不是大陆学生无法进行学生认证,也已经不是新用户,一般选用ECS:https://www.aliyun.com/product/ecs?spm=5176.19720258.J_3207526240.32.249a2c4a3g9H1X
支付宝扫码登陆后,选择实例。这里按需选择,看计算的需求。我选择了一个通用型g7的实例。对于地域的选择,选用靠近客户地域的。如果只是学习需要就选离自己近的。对于预装环境的选择,一般推荐CentOS,但是阿里云显示:

因此选用了Alibaba Cloud Linux,操作与CentOS大致相同。
点击下一步,网络与安全组可以先默认,下一步
系统配置中配置一下密码和密钥(也可购买后配置,但是改版了我没找到在哪)下一步
分组设置目前没有需要,确认订单。
在购买了云服务器后,点击右上角控制台

点击左边三根横线

点击云服务器ECS

在概览中便可以看到新购买的实例。

点击实例,点击安全组

进入安全组,在入方向手动添加端口3306(MySql使用),8080(Spring项目通常用到,我的项目常用9001),21,22。

实例有两个IP,公网IP和私网IP,这里复制公网IP。连接服务器需要使用。

遇到的问题:
阿里云实例默认禁用ssh导致无法连接的问题
https://blog.csdn.net/abracadabraa/article/details/125212934

连接云服务器

工具准备

这里用到两个工具:XShell,Xftp。
Xshell官网下载:https://www.xshell.com/zh/xshell-download/
Xftp官网下载:https://www.xshell.com/zh/xftp-download/
选择:家庭和学校用的免费许可,要求你填一个电子邮箱用来接收下载链接。下载后无脑安装就好啦。

Xshell连接:

打开Xshell,点击新建会话

在主机中输入自己服务器的IP地址,在用户身份认证中输入用户名和密码,点击连接,点确定,当屏幕显示welcome to alibaba cloud时,说明你连接成功了。

Xftp连接:

和Xshell类似:

进入后左边是主机右边是服务器:

便可以可视化管理服务器上的文件了。可以通过拖拽将主机的文件上传到服务器。右键进行复制剪切删除等。

环境配置

登录Xshell

JDK安装
yum -y install java-1.8.0-openjdk.x86_64

屏幕上出现Complete时,说明安装成功了。并且在命令行输入java -version也能正常显示。
但是输入javac报错
运行maven报错:
The JAVA_HOME environment variable is not defined correctly linux maven
原因:
1.需要配置环境变量

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的环境变量,发现Java -version能找到,但是javac -version的命令找不到。发现/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64/文件夹下尽然只有jre文件夹,其他啥都没有。

参考:https://www.codeleading.com/article/58305659278/

后来在网上搜到,这是因为openjdk安装完只有默认的运行环境,没有开发环境。
因此需要安装jdk开发环境:

yum install java-1.8.0-openjdk-devel.x86_64

运行结束后/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64文件夹内便有lib、bin等文件了。

Tomcat安装

tomcat官网,这里选择tomcat8:
https://tomcat.apache.org/download-80.cgi

右键选择复制链接地址,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

为了方便命令行操作,执行命令进行重命名

mv apache-tomcat-8.5.79  tomcat8.5

启动tomcat:

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

显示tomcat started说明启动成功,现在可以在外网访问http://服务器地址:8080,显示 Apache的页面说明访问成功

Mysql安装

同样cd到/opt下(FHS将/opt定义为 “为安装附加应用软件包而保留”,即/opt是linux系统预留给第三方软件安装的位置)

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说明安装成功。
登录:

mysql -uroot -p

这样安装的mysql默认是没有密码的,可以自行设置。

遇到问题:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因:
由于“socket”文件是由mysql服务运行时创建的,如果提示“ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘***’ (2)”,找不到“socket”文件,我们首先要确认的是mysql服务是否正在运行。
参考:
https://blog.csdn.net/weixin_45777669/article/details/115671283
发现是因为mysql服务没有启动
启动命令:

service mysqld start

停止命令:

service mysql stop

注意:MySQL中的语句带分号。

Maven安装

参考:
https://blog.csdn.net/qq_41937388/article/details/105334987
https://developer.aliyun.com/article/744921
首先,在Xftp上创建一个文件夹maven
cd到该文件夹下
下载maven的包:
官网: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

设置全局变量:

vim /etc/profile

在最后添加

export MAVEN_HOME={创建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

项目打包部署

参考:https://www.bilibili.com/video/BV1uK411p7Bp?spm_id_from=333.999.0.0

数据库导入

首先在Navicat中:双击连接启动,右键想要备份的数据库,选择转储SQL文件,选择结构及数据。选择想要保存的位置。
将导出的数据库拖拽到Xftp中自己想要存储的位置上,保存路径。
在Xshell中
首先启动Mysql:

mysql -uroot -p
mysql> create database abc;      # 创建数据库
mysql> use abc;                  # 使用已创建的数据库
mysql> set names utf8;           # 设置编码
mysql> source /home/abc/abc.sql  # 导入备份数据库,这里路径替换为自己上传sql文件的路径

检查是否安装成功:

mysql> show databases;
mysql> use abs;
mysql> show tables;

参考:https://www.runoob.com/mysql/mysql-database-import.html

项目打包

部署之前需要修改的配置:
application.properties中;需要将localhost修改成服务器的ip,修改用户名密码改成服务器中设置的。
在pom文件中修改名字,版本号等信息。
注意检查idea的tomcat,sql等的版本与服务器中的版本一致。

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后,点击apply
build->build artifacts,到设定的文件夹中去找到war包,上传到服务器的comcat8.5/webapps中。
然后直接重启comcat:

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

comcat会自动解析。
但是这里我没有成功,可能是因为不懂project structure里面的配置。

命令行打jar包

将Project文件夹整个上传到服务器上任意喜欢的位置。
cd到项目文件夹中,执行:

mvn package

执行结束后

ll

便能看见当前目录下多了一个jar包。
Xftp中将该包保存到自己想要的地方备份。因为mvn clean后会清除。

命令行打war包

需要修改项目:
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.在入口类的同级目录中新建一个类,内容指向入口类:

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);}
}

将更新上传服务器。
清理掉打jar包的遗留:

mvn clean

这次打war包:

mvn package

等待一会便能在当前目录看到打好的war包了。

正式部署

jar

jar包可以直接运行:

nohup java -jar xxxx.jar &

便可以访问了。

遇到问题时查看日志:
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会自动解析。
之后便可以访问了。

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

  1. 阿里云域名备案和域名解析流程详解

    域名备案DNICP(Domain Name Internet Content Provider)的目的就是为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,如果网站不备案的话,很有可能被 ...

  2. 阿里云部署docker项目流程

    阿里云部署docker项目流程 这是自己的项目项目原来的项目是一个手机远程管理交换机的项目,项目中包含嵌入开发,python+flash对接的flutter(android+ios),mysql,re ...

  3. 阿里云容器服务飞天敏捷版详解

    阿里云容器服务飞天敏捷版详解 libinjingshan 2017-04-24 23953浏览量 简介: 阿里云容器服务提供了公共云.专有云以及飞天敏捷版三种部署形态,全方位地满足企业客户利用CaaS ...

  4. 全解析阿里云Alibaba Cloud Linux镜像操作系统详解

    阿里云Alibaba Cloud Linux镜像系统是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud ...

  5. 阿里云物联网平台-数据解析脚本详解

    阿里云物联网平台-数据解析脚本详解 var COMMAND_REPORT = 0x00; //属性上报. var COMMAND_SET = 0x01; //属性设置. var COMMAND_REP ...

  6. 阿里云 linux服务器安装tomcat(图文详解)

    阿里云 linux服务器安装tomcat(图文详解) 前言 博主昨天搞了jdk,现在就让我们一起来学习怎么在阿里云服务器上安装tomcat吧(注:本文极其适合小白!!! ) ------------- ...

  7. docker 打包部署 python项目_Docker如何部署Python项目的实现详解

    Docker 是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以将应用程序构建.打包为一个轻量级容器,并在任何地方运行.Docker 会在软件容器中自动部署应用程序. 在本篇中,我将介绍如 ...

  8. java处理请求的流程_Java Spring mvc请求处理流程详解

    Spring mvc请求处理流程详解 前言 spring mvc框架相信很多人都很熟悉了,关于这方面的资料也是一搜一大把.但是感觉讲的都不是很细致,让很多初学者都云里雾里的.本人也是这样,之前研究过, ...

  9. 阿里云部署Django项目(nginx+uWSGI)-2018.11

    前言:部署的前提是你的项目已经在本地完成可以运行了,我的本地环境是ubuntu16.04+python3.5+Django2.1.2+Mysql,在python虚拟环境(virtualenv)下建的项 ...

最新文章

  1. golang 字符串排序_Golang操作数据库Redis
  2. flume自定义Interceptor
  3. 关于web服务器TIME_WAIT值高的问答
  4. kafka单机安装(版本kafka_2.11-2.2.0.tgz)
  5. 前端学习(2957):组件之间的参数传递父传子
  6. sql跨表查询_白话django之ORM的查询语句
  7. oracle trace跟踪,浅析Oracle追踪工具SQL Trace的启用方式
  8. Linux的文件压缩与解压缩
  9. mysql分组统计以及全部统计union all使用
  10. 四大领域全面发力,腾讯云构筑全链路开发者服务体系
  11. 重设域控还原模式密码
  12. 应急响应的基本流程(建议收藏)
  13. 科学计算机度计算,科学计算器arctan
  14. WINCE6.0下载地址
  15. 物联网安全知识点总结--第六章 物联网应用层安全
  16. 无法安装冰点还原_PC整机备份与还原教程 Active Backup for Business
  17. Discuz中常用数据库操作
  18. 全球及中国医用管材行业需求调研与竞争趋势研究报告2022版
  19. python内置标准库不可以处理的文件是_精华 | 140种Python标准库、第三方库和外部工具都有了...
  20. 中国企业差旅费用管理解决方案行业市场供需与战略研究报告

热门文章

  1. 学生搭配问题数据结构报告c语言,数据结构课程设计_学生搭配问题.doc
  2. PWN入门(9)NX enabled,PIE enabled与返回LibC库
  3. 网络基础知识:10M、50M、100M宽带下载速率一般是多少?
  4. Win系统 - 系统双击文件总弹出属性窗口如何解决?
  5. 零基础怎么系统学习大数据?
  6. 最优化问题的Matlab优化工具箱求解总结
  7. Office 2016 Excel实现下拉栏
  8. contest 12.31
  9. 在ThinkAdmin中增加显示数据表格汇总金额
  10. 在.NET中进行AutoCAD二次开发(C#+ObjectArx) (二)