部署 ssm 项目到云服务器上(购买云服务器 + 操作远程云服务器 + 服务器中的环境搭建 + 部署项目到服务器)
部署 Web 项目
- 1、获取 Linux 环境
- 1.1、如何去买一个云服务器
- 1.2、远程操作云服务器
- 1.3、在 Linux 系统中搭建 Java Web 的运行环境。
- 1)安装 JDK(使用包管理器 yum 来安装)
- 2) 安装Tomcat
- 3)安装 MySQL。
- 1.4、在云服务器中创建数据库
- 2、把 ssm 项目部署到云服务器
- 2.1、打包项目
- 2.2、在服务器中运行项目
1、获取 Linux 环境
推荐的做法:买一个云服务器。(主要是要有一个外网 IP)
好处:① 方便(如果自己搭建,就比较麻烦)、② 便宜(如果只是为了学习使用,最低配置的服务器完全够用,不到 50 元就能买一年使用权)、③有外网 IP,可以部署项目(有了外网 IP,我们部署的项目,别人就可以访问了)。
1.1、如何去买一个云服务器
由于云服务器提供的厂商很多,例如:华为云、腾讯云、阿里云 … 等等,我们只需要选其中最便宜的就可以了。
以购买华为云为例:
1)由于在淘宝中搜索的比较便宜,官网中搜索的比较贵,我就在淘宝上买了。(29元一年,这是我买过最便宜的一个服务器了)
2)直接询问客服怎么操作(注册账号 -> 实名认证 -> 要账号密码)客服帮我们买。
3)客服会让我们选配置、Linux 操作系统是主要的服务器系统(因为要在服务器上面部署项目,所以我们的服务器要使用 Lunix 操作系统),我选的配置如下。
4)设置云服务器的密码。(浏览器中搜索华为云 -> 登录刚才注册的账号 -> 点击右上角的控制台 -> 搜索自己买的服务器(我买的是云耀云服务器) -> 然后就能看到自己的服务器(点击其中的重置密码,第一次买的云服务器是没有密码的,自己要设置一个密码))。
5)服务器防火墙开放 8080 端口。
为了安全考虑,服务器中的端口并不是所有都是开放的,需要去开通端口。
以华为云为例:
点击安全组 -> 点击配置规则
点击入方向规则 -> 点击添加规则 -> 填写信息
如果要开通其他端口,重复上面操作就可以了
1.2、远程操作云服务器
要想在 Windows 下远程连接 Linux 的 ssh 客户端,就需要借助像Xshell这样的终端模拟器软件。
为什么使用 Xshell 而不使用其他的终端模拟器软件:
Xshell 的优点:① 界面设计简洁、人性,使用方便。② 支持标签,打开多个服务器时候很方便,点击标签切换。③ 有免费的版本。
1)官网中下载 Xshell(点击下载 -> 选择家庭个人免费版 -> 然后点击下载)
2)连接云服务器。(进入下载好的 Xshell -> 点击新建 -> 输入新建会话的名称 -> 输入外网 IP -> 输入账号 -> 输入密码)
外网IP:我们买的云服务器外网 IP 地址。
账号:一般账号为 root
密码:前面我们第一次对服务器设置的密码
1.3、在 Linux 系统中搭建 Java Web 的运行环境。
新买的服务器,就像是新的电脑一样,里面没有软件,需要我们去安装一些重要的软件程序。(JDK + Tomcat + MySQL)
① JDK:运行 Java 程序,安装 JDK 是无可厚非的。(JDK1.8)
② Tomcat: ssm 项目不用安装,ssm 项目自带 Tomcat。(Tomcat8.5)
③ MySQL:如果项目要从数据库拉取数据,就要安装。
1)安装 JDK(使用包管理器 yum 来安装)
# 使用命令 yum install java-1.8.0-openjdk-devel.x86_64 -- 安装 JDK1.8)
# 可以输入 javac 来查看是否安装成功 -- 不报错,提示帮助选项
2) 安装Tomcat
(如果不是 selvet 项目,是 ssm 项目,不用安装Tomcat,因为 ssm 项目中自带了 tomcat)
从官网中下载 Tomcat 8.5 软件包:Tomcat
自己在远程的 Linux 操作系统中创建一个目录,把下载好的 Tomcat 压缩包直接拖拽进去。
如果在拖拽过程中发生报错或者卡住进度条不动,需要下载一个软件包,输入下面的指令。
yum install lrzsz
接下来把 Tomcat 进行解压缩,输入下面命令
unzip 包名
3)安装 MySQL。
我们在这里安装的是 MariaDB,在 MySQL 中能执行的命令在 MariaDB 中都能执行,语法基本没有什么区别。
MariaDB 和 MySQL 就像是双胞胎兄弟,基本没有什么区别。
# 执行下面 4 个命令
# yum install -y mariadb-server -- 安装 mariadb 服务
# yum install -y mariadb -- 安装 mariadb 命令行客户端
# yum install -y mariadb-libs -- 安装 mariadb C library
# yum install -y mariadb-devel -- 安装 mariadb 开发包
启动服务器
# systemctl start mariadb
设置服务开启自动启动
systemctl enable mariadb
查看服务状态
systemctl status mariadb -- 如果启动成功、结果是绿的
使用命令行客户端尝试连接
mysql -uroot -- 如果云服务器中的 数据库 有密码需要在后面加上 -p
创建数据库时为了支持中文,统一使用 utf8mb4 字符集
MariaDB [(none)]> create database 数据库名称 charset utf8mb4;
1.4、在云服务器中创建数据库
根据要部署程序所对应的数据库,创建数据库。这个数据库和本地中项目所需的数据库一样,重新创建一次就可以了。
注意:Linux 操作系统区分大小写。
这个步骤很重要,多花一点时间,数据库容易创建出错,如果数据库出错,数据库连接就会有问题
2、把 ssm 项目部署到云服务器
2.1、打包项目
1)更改配置,更改配置很重要,多花一点时间,如果有一些地方没有更改,部署大概率不会成功。(有一些配置要进行更改,比如:连接数据库所需的账号密码,本地中用到的地址改成服务器中的地址,服务器中的地址需要自己创建)。
2)打包 (双击 package)
打包成功。显示如下:
2.2、在服务器中运行项目
1)把包放到服务器中(使用 Xshell 连接远程服务器,把本地的包直接拖拽到服务器中)。
如果在拖拽过程中发生报错或者卡住进度条不动,需要下载一个软件包,输入下面的指令。
yum install lrzsz
包的位置:
2)运行项目
在云服务器中存放包的目录下输入下面的第一条指令:
# nohup java -jar 包名 >> log.log &# nohup -- 后台运行项目指令
# java -jar 包名 -- 运行程序
# >> log.log -- 把日志放到 log.log 中
# & -- 表示后台一直运行
运行成功,如下:
通过外网 IP 成功访问到项目的登录页面。
就此,大功告成,项目部署完成 !!!
相关文章:

部署 ssm 项目到云服务器上(购买云服务器 + 操作远程云服务器 + 服务器中的环境搭建 + 部署项目到服务器)
部署 Web 项目 1、获取 Linux 环境1.1、如何去买一个云服务器1.2、远程操作云服务器1.3、在 Linux 系统中搭建 Java Web 的运行环境。1)安装 JDK(使用包管理器 yum 来安装)2) 安装Tomcat3)安装 MySQL。 1.4、在云服务器…...
python爬虫-使用selenium自动登录微博
环境准备:anaconda、pycharm编辑器、chromedriver(记得下载) 首先查看本地anaconda的python环境和selenium版本号(不同版本的api接口可能不同) conda list python输出 # Name Version Build Channel ipython …...
Python 面试:可变类型和不可变类型作为函数参数,关键字参数
1. 可变类型作为参数 可变对象: list/set/dict 参数会指向可变对象的副本的地址,每次修改的是同一个对象。 def flist(l):l.append(0)print(l)ll [] flist(ll) flist(ll)输出为: [0] [0, 0] # 注意:l只是ll的一个副本,修改l不…...

Web3.0时代什么时候到来,Web3.0有什么机会?
🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…...
vue心得
不是专业的前端开发,但因为E2E开发和架构设计的需要,必须对前端框架有一些了解。这两年项目前端在用vue,就记录一下vue的使用心得。 心得 component component: vue组件,可在其中完成界面呈现(V…...

JavaScript—数据类型、对象与构造方法
js是什么? JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。 js有哪些特点呢…...

自定义node-red节点中,如何编写节点的配置信息弹窗
前言 最近有读者通过博客向我咨询,在自定义node-red节点时,如何编写该节点的配置页面,就是我们通常见到的,双节节点打开的信息弹窗。如下图: 上面两张图,展示了inject节点与mqtt in 节点的配置弹窗。 在弹窗中,除了上面的删除,取消,完成,和下面的失效按钮。 中间…...

数据之美:探索数据可视化设计的奇妙世界
在信息时代的浪潮中,海量的数据正在影响着我们的生活和决策。然而,数据本身虽然有力量,但如何将其有机地呈现给我们,却成为了一个挑战。数据可视化设计应运而生,它不仅让枯燥的数字变得生动,还带来了一场视…...
docker初始化
避免僵尸进程 使用dump-init FROM node:16 AS builderRUN apt install dumb-init... ...ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["node", "dist/main"]使用tini docker run --init .......开启docker内部ssh docker exec -…...
【C语言】结构体变量引用的一个例子
文件test_funcs.c: #include <stdio.h> #include <stdlib.h>struct t_Test {int n1;int n2; };struct t_Test *alloc_Test(void) {struct t_Test *pTestNULL;pTestmalloc(sizeof(struct t_Test));pTest->n1 1;return pTest; }void func1(struct t_…...

美团笔试题之合并 K 个升序链表
文章目录 题目详情分析暴力求解两两合并链表 Java完整实现代码总结 题目详情 23 美团笔试真题 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 分析 暴力求解 将所有数值存入一个数组ÿ…...

C语言(第三十一天)
6. 调试举例1 求1!2!3!4!...10!的和,请看下面的代码: #include <stdio.h> //写一个代码求n的阶乘 int main() {int n 0;scanf("%d", &n);int i 1;int ret 1;for(i1; i<n; i){ret * i;}printf("%d\n", ret);return …...

【C/C++】虚析构 | 抽象类
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c系列专栏:C/C零基础到精通 🔥 给大…...

MySQL 的隐式转换导致诡异现象的案例一则
正是因为 MySQL 对字符串进行隐式转换时会截断再转,而不是像 Oracle、SQL Server 这些数据库针对这种问题直接报错,所以才出现了这个诡异的问题。 作者:刘晨 网名 bisal ,具有十年以上的应用运维工作经验,目前主要从事…...

【考研数学】概率论与数理统计 —— 第二章 | 一维随机变量及其分布(2,常见随机变量及其分布 | 随机变量函数的分布)
文章目录 引言三、常见的随机变量及其分布3.1 常见的离散型随机变量及其分布律(一)(0-1)分布(二)二项分布(三)泊松分布(四)几何分布(五࿰…...

【2023中国算力大会】《中国综合算力指数(2023年)》出炉,宁夏“资源环境”位列全国第1,“算力”跃入Top10
2023年8月18日-19日,2023中国算力大会在宁夏银川举行,本届大会以“算领新产业潮流 力赋高质量发展”为主题,打造“主题论坛、成果展示、产业推介、先锋引领”四大核心内容,全面展示算力产业发展最新成果,为产业各方搭建…...

自动设置服务器全教程
亲爱的爬虫探险家!在网络爬虫的世界里,自动设置代理服务器是一个非常有用的技巧。今天,作为一家代理服务器供应商,我将为你呈上一份轻松实用的教程,帮助你轻松搞定爬虫自动设置代理服务器。 一、为什么需要自动设置代…...

Mysql--技术文档--B树-数据结构的认知
阿丹解读: B树(B tree)和B树(B-tree)都是常见的自平衡搜索树数据结构,用于在存储和检索大量数据时提供高效的操作。 基本概念-B树/B树 B树(B-tree)和B树(B tree&#x…...

go gin 自定义验证
我们上一篇已经提到了gin中binding时候可以指定json字段大小等限制,但是那个错误却是英文的,现在想搞成中文的,以便前端可读,demo如下 package mainimport ("net/http""reflect""github.com/gin-gonic/…...

掉了无数头发成地中海后,我整理出了这套40+的大屏模板,快收藏!
最近又有不少粉丝后台问我接不接做可视化大屏,看来可视化大屏是越来越火啦,但老李还是要说一下,老李本身工作就很忙,实在是顾不过来,但老李会在自己体验过后为大家挑选合适的工具和模板,提升大家做大屏的效…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...