JavaWeb项目(包含SSM项目)部署到Linux云服务器

14次阅读

目录

一、云服务器环境部署

1、安装 JDK

查看 JDK 的命令为 :

安装 JDK 命令 :

2、安装 Tomcat

2.1 安装步骤

2.2 验证 Tomcat 是否启动成功

3、安装 MySQL

二、部署 Web 项目到 Linux

2.1 在云服务器中数据库建库建表

2.2 修改部署项目连接数据库密码

2.3 使用 maven 进行打包

2.4 将 jar 包打包上传云服务器

2.5 使用 java 指令运行项目 jar 包


当我们构建完 JavaWeb 项目后 , 如果需要许多人来访问我们的项目 , 此时就需要将项目部署到服务器上 , 使用外网 IP, 此时大家就可以访问你的项目了。

在 Linux 云服务器上部署 JavaWeb 项目需要完成如下操作步骤 :

1、安装 JDK

2、安装 Tomcat ( 若为 SSM 项目则可以跳过此步骤 , 因为 Spring 项目打包 jar 会自动打包 Tomcat)

3、安装 MySQL 数据库


一、云服务器环境部署

1、安装 JDK

安装文件可以使用 yum 来安装 ,yumLinux 下非常常用的一种包管理器 , 包管理器就好像我们手机里面的应用商店 , 直接在应用商店里面下载 App。

查看 JDK 的命令为 :

​yum list | grep jdk
  • yum list 表示列出可以安装的包
  • | 为管道 , 效果为把第一个命令的输出当做第二个命令的输入
  • grep 为筛选包含 jdk 关键字的结果

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图

选择安装 jdk 版本 1.8,devel 表示为开发版 ,x86_64 为 64 位操作系统

安装 JDK 命令 :

执行以下命令并在后续界面输入 y 表示确认下载

yum install java-1.8.0-openjdk-devel.x86_64

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图1

出现以上界面就安装成功 JDK 了。

2、安装 Tomcat

2.1 安装步骤

查看 Tomcat 列表命令

yum list | grep tomcat

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图2

在筛选出来的 Tomcat 版本中发现 Tomcat 版本都太低 , 我们尽量选择 Tomcat 版本为 8.0 以上。因此我们就需要自己去 Tomcat 官网下载自己对应的版本。

我这里下载的 Tomcat 压缩包版本为 apache-tomcat-8.0.0-RC1.zip

如果我们需要 将外部的文件上传到 Linux 系统中 , 可以将文件拖拽到命令框中 , 但 在这之前需要安装 Linux 上传依赖的命令 :

yum install lrzsz
  • rz 命令 : 将 windows 上的文件传给 Linux 服务器
  • sz 命令 : 将 Linux 上的文件传给 windows

直接将下载好的 Tomcat 版本压缩包文件拖拽到 xshell 命令框中

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图3

对下载好的 apache-tomcat-8.0.0-RC1.zip 进行解压缩

1、先执行解压缩的依赖命令

yum install unzip

2、执行解压缩文件apache-tomcat-8.0.0-RC1.zip

unzip apache-tomcat-8.0.0-RC1.zip

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图4

解压缩 Tomcat 压缩包后就可以启动 Tomcat 了 , 此时需要进入 bin 目录文件 下的 startup 脚本

  • startup.bat 指在 windows 下运行
  • startup.sh 指在 Linux 下运行

因此我们就需要给.sh 赋予可执行权限 , 使用如下命令 :

chomd +x *.sh

所有的后缀为.sh 全部变为了绿色 , 绿色表示可执行

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图5

2.2 验证 Tomcat 是否启动成功

1、启动 Tomcat

sh startup.sh

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图6

2、验证 Tomcat 是否成功启动

方式一 : 查看端口号 8080 是否被占用

netstat -anp | grep 8080

方式二 : 查看 Tomcat 进程是否存在

ps aux | grep tomcat

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图7

3、安装 MySQL

接下来在云服务器里面安装 MySQL 详细步骤见以下 2 篇博客

文章 :https://blog.csdn.net/qq_45441466/article/details/109670194

保姆级部署 SpringBoot 项目到服务器

在 xshell 里面连接数据库命令为

mysql -uroot -p

退出数据库命令为: Ctrl 键 + d

二、部署 Web 项目到 Linux

2.1 在云服务器中数据库建库建表

将个人项目的数据库 sql 文件复制到云服务器中的数据库里面

以我自己部署的个人博客项目为例 :

-- 创建数据库 drop database if exists mycnblog; create database mycnblog DEFAULT CHARACTER SET utf8mb4; -- 使用数据数据 use mycnblog; DROP TABLE IF EXISTS `articleinfo`; CREATE TABLE `articleinfo` (`id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `createtime` datetime NULL DEFAULT CURRENT_TIMESTAMP, `updatetime` datetime NULL DEFAULT CURRENT_TIMESTAMP, `uid` int(11) NOT NULL, `rcount` int(11) NOT NULL DEFAULT 1, `state` int(11) NULL DEFAULT 1, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of articleinfo -- ---------------------------- INSERT INTO `articleinfo` VALUES (5, ' 第一篇文章 ', '# 这是第一篇文章 \n 哈我一定要去看看那美丽的西湖 , 说到西湖 , 我脑海里就浮现出那绿油油的大树 ,', '2023-07-06 16:53:31', '2023-07-06 18:21:52', 17, 12, 1); INSERT INTO `articleinfo` VALUES (6, ' 第二篇文章 ', '# 这是第二篇文章 \n 这是什么声音? 是我们班正在玩的游戏 , 你猜是什么游戏? 对了 , 就是吹气球! 吹气球游戏开始了,\n', '2023-07-06 16:54:28', '2023-07-06 16:54:28', 17, 1, 1); INSERT INTO `articleinfo` VALUES (7, ' 第三篇文章 ', '# 在这里写下一篇博客 \n 哈哈哈哈哈哈哈哈接啊哈哈哈哈哈 ', '2023-07-06 16:54:54', '2023-07-06 16:54:54', 17, 1, 1); INSERT INTO `articleinfo` VALUES (8, ' 第四篇文章 ', '# 在这里写下一篇博客 \n 你们知道这是谁吗? 这就是我的姐姐。她今年十岁 , 高高的个子 , 长长的头发 , 一双水汪汪的大眼睛,', '2023-07-06 16:55:32', '2023-07-06 16:55:32', 17, 1, 1); INSERT INTO `articleinfo` VALUES (9, ' 第五篇文章 ', '# 这是第五篇文章 \n 在数字化时代 , 技术的发展给各行各业带来了巨大的改变 , 包括写作领域。传统的人工写作已经逐渐被 AI 文章生成器所取代 , 为我们提供了更便捷和高效的写作体验。今天 , 我将为大家推荐五款优秀的免费版文章生成器 , 它们能够帮助你实现自动化写作 , 解放你的时间和精力。', '2023-07-06 16:56:18', '2023-07-06 16:56:18', 17, 1, 1); INSERT INTO `articleinfo` VALUES (10, ' 第六篇文章 ', '# 在这里写下一篇博客 \n1111', '2023-07-06 17:30:23', '2023-07-06 17:30:23', 17, 1, 1); -- ---------------------------- -- Table structure for userinfo -- ---------------------------- DROP TABLE IF EXISTS `userinfo`; CREATE TABLE `userinfo` (`id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `photo` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', `createtime` datetime NULL DEFAULT CURRENT_TIMESTAMP, `updatetime` datetime NULL DEFAULT CURRENT_TIMESTAMP, `state` int(11) NULL DEFAULT 1, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `username`(`username`) USING BTREE, UNIQUE INDEX `username_2`(`username`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of userinfo -- ---------------------------- INSERT INTO `userinfo` VALUES (1, 'admin', '7517b8aa67a2483ba8835cd3baa92ee0$27b4681cf298f199817c8cce79bf38f3', '', '2021-12-06 17:10:48', '2021-12-06 17:10:48', 1); INSERT INTO `userinfo` VALUES (15, ' 张三 ', '7f6e6e1ee2af49288531e10c960d3cdc$211916150ec1fda2f2e01a262d94e1a2', '', '2023-07-04 22:34:16', '2023-07-04 22:34:16', 1); INSERT INTO `userinfo` VALUES (17, ' 是烟花哈 ', '7517b8aa67a2483ba8835cd3baa92ee0$27b4681cf298f199817c8cce79bf38f3', '', '2023-07-06 16:47:13', '2023-07-06 16:47:13', 1); -- ---------------------------- -- Table structure for videoinfo -- ---------------------------- DROP TABLE IF EXISTS `videoinfo`; CREATE TABLE `videoinfo` (`vid` int(11) NOT NULL, `title` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `url` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `createtime` datetime NULL DEFAULT CURRENT_TIMESTAMP, `updatetime` datetime NULL DEFAULT CURRENT_TIMESTAMP, `uid` int(11) NULL DEFAULT NULL, PRIMARY KEY (`vid`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of videoinfo -- ---------------------------- INSERT INTO `videoinfo` VALUES (1, 'java title', 'http://www.baidu.com', '2023-06-28 10:44:44', '2023-06-28 10:44:44', 1);

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图8

2.2 修改部署项目连接数据库密码

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图9

查看 MySQL 的端口号命令 :

netstat -anp | grep mysql

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图10

可以看到我们下载的 Mysql 的端口号为 3306

2.3 使用 maven 进行打包

打包有 jar 和 war 包两种方式。

jar 包 : SpringBoot 官网提到最多的是使用 jar 打包 ,tomcat 一起打进去了 , 直接 java -jar …your.jar 就可以了。

war 包 : 当你要部署到自己安装的weblogic、Tomcat 里 , 这种传统方式通常使用 war 包。

我这里演示使用 SpringBoot 项目来上传云服务器

在 pom.xml 中添加打包依赖

 <packaging>jar</packaging> <build> <finalName>mycnblog</finalName> </build> // mycnblog 为打包名字

双击 moven 中的 package 选项

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图11

得到一个 mycnblog.jar 压缩包

​​​​​​​JavaWeb项目(包含SSM项目)部署到Linux云服务器插图12

2.4 将 jar 包打包上传云服务器

进入到根目录下 , 下载 jar 包拖拽命令 rz

yum install lrzsz

执行上面命令后 ,j 就可以直接将 jar 包就可以直接拖拽到命令框中了

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图13

使用命令 ls, 查看 , 如下图 , 有 jar 包存在 , 表明上传成功

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图14

2.5 使用 java 指令运行项目 jar 包

此处命令为一次性命令 , 解决方法见下面说明原因

java -jar ***.jar //*** 为你的 jar 包名

​​​​​​​

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图15

这种启动方式是一次启动 , 当我们关掉 Xshell 的时候 , 我们的网站又访问不上了 , 又得重新打开 Xshell, 执行 java -jar ***.jar。所以我们要使用下面的方法让这个项目在服务器上自动不间断地跑.

因此需要修改命令运行项目 jar 包 :

nohup java -jar ***.jar & //*** 为你的 jar 包名

当使用 nohup 的时候 , 一般会出现问题 当你 输入 nohup –version 时 , 会出现

nohup: missing operand 

这个标志 说明 , 没有配置 nohup , 系统目前还不认识这个命令。

推荐 看这篇 博客 可以很完美的解决这个问题。

现在 , 默认你配置好了 nohup , 那么现在就开始放大招了。

nohup java -jar xxx.jar & # 这个时候就可以 不挂断运行了 

但是 , 到这个时候 , 可能还会出现一个问题

# nohup: ignoring input and appending output to‘nohup.out’

出现这个之后 , 不用管 , 直接回车。会出现

 Exit 1 nohup java -jar ludans.jar [root@iZ2zehpy6o4zloocwwg9tsZ home]# # nohup: ignoring input and appending output to‘nohup.out’

这个问题 , 简单描述 , 就是 忽略输入并将输出附加到“nohup.out”文件中。

这时候再在浏览器中输入 公网 IP:8800/ 项目界面文件 html

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图16

如果出现输入公网 IP:8080 , 无法运行项目 , 此时需要考虑云服务器是否放开端口号 8080 以及 3306

解决方法 : 阿里云轻量级服务器为例 , 配置防火墙规则如下图

JavaWeb项目(包含SSM项目)部署到Linux云服务器插图17

原文链接:https://blog.csdn.net/qq_73471456/article/details/131604863

正文完
 
追风者
版权声明:本站原创文章,由 追风者 2024-01-02发表,共计6920字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布。