当前位置: 首页 > news >正文

部署 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

包的位置:

在这里插入图片描述

右击target -> import

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&#xf…...

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&#xff1a; #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 美团笔试真题 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 分析 暴力求解 将所有数值存入一个数组&#xff…...

C语言(第三十一天)

6. 调试举例1 求1!2!3!4!...10!的和&#xff0c;请看下面的代码&#xff1a; #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++】虚析构 | 抽象类

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…...

MySQL 的隐式转换导致诡异现象的案例一则

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

【考研数学】概率论与数理统计 —— 第二章 | 一维随机变量及其分布(2,常见随机变量及其分布 | 随机变量函数的分布)

文章目录 引言三、常见的随机变量及其分布3.1 常见的离散型随机变量及其分布律&#xff08;一&#xff09;&#xff08;0-1&#xff09;分布&#xff08;二&#xff09;二项分布&#xff08;三&#xff09;泊松分布&#xff08;四&#xff09;几何分布&#xff08;五&#xff0…...

【2023中国算力大会】《中国综合算力指数(2023年)》出炉,宁夏“资源环境”位列全国第1,“算力”跃入Top10

2023年8月18日-19日&#xff0c;2023中国算力大会在宁夏银川举行&#xff0c;本届大会以“算领新产业潮流 力赋高质量发展”为主题&#xff0c;打造“主题论坛、成果展示、产业推介、先锋引领”四大核心内容&#xff0c;全面展示算力产业发展最新成果&#xff0c;为产业各方搭建…...

自动设置服务器全教程

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

Mysql--技术文档--B树-数据结构的认知

阿丹解读&#xff1a; B树&#xff08;B tree&#xff09;和B树&#xff08;B-tree&#xff09;都是常见的自平衡搜索树数据结构&#xff0c;用于在存储和检索大量数据时提供高效的操作。 基本概念-B树/B树 B树&#xff08;B-tree&#xff09;和B树&#xff08;B tree&#x…...

go gin 自定义验证

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

掉了无数头发成地中海后,我整理出了这套40+的大屏模板,快收藏!

最近又有不少粉丝后台问我接不接做可视化大屏&#xff0c;看来可视化大屏是越来越火啦&#xff0c;但老李还是要说一下&#xff0c;老李本身工作就很忙&#xff0c;实在是顾不过来&#xff0c;但老李会在自己体验过后为大家挑选合适的工具和模板&#xff0c;提升大家做大屏的效…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

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

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出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文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海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出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

CMake 从 GitHub 下载第三方库并使用

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