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

news/2024/11/24 10:51:01/

目录

一、云服务器环境部署

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关键字的结果

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

安装JDK命令:

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

yum install java-1.8.0-openjdk-devel.x86_64

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

2、安装Tomcat

2.1 安装步骤

查看Tomcat列表命令

yum list | grep tomcat

在筛选出来的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命令框中

对下载好的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

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

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

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

chomd +x *.sh

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

2.2 验证Tomcat是否启动成功

1、启动Tomcat

sh startup.sh

 2、验证Tomcat是否成功启动

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

netstat -anp | grep 8080

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

ps aux | grep tomcat

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

 

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

 查看MySQL 的端口号命令:

netstat -anp | grep mysql

 可以看到我们下载的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选项

得到一个mycnblog.jar压缩包

 ​​​​​​​

 

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

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

yum install lrzsz

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

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

 

 

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

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

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

​​​​​​​

        这种启动方式是一次启动,当我们关掉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

  

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

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

 


http://www.ppmy.cn/news/781787.html

相关文章

CAD打开字体无法选择,cad打开无字体,cad无法加载字体

在命令栏中输入filedia&#xff0c;然后回车&#xff0c;输入1保存关闭。再重新打开即可

UOS如何添加window字体或者非商业字体

1.如果发现在UOS上面没有某个非商业字体&#xff0c;可以去Windows中目录 C:\Windows\Fonts 或者网上下载对应改字体&#xff1b;商业字体需要单独购买。 2.将字体拷贝到UOS系统某个位置&#xff0c;比如桌面 3.从启动器中打开字体管理器 4.点击左上角 进行字体添加 &#xf…

linux 环境下安装(添加)字体

1&#xff1a; 先准备要安装&#xff08;添加&#xff09;的字体文件&#xff0c;如图&#xff1a; 可以先到windows系统的&#xff1a;C:\Windows\Fonts 路径下面可以看到很多字体文件&#xff0c;如图&#xff1a; 看喜欢哪一种&#xff0c;可以就用哪一种&#xff0c;不过…

ios工程-ttf格式字体:添加自定义的字体,并在工程中成功的使用字体

ios工程-ttf格式字体&#xff1a;添加自定义的字体&#xff0c;并在工程中成功的使用字体 设备/引擎&#xff1a;Mac&#xff08;11.6&#xff09;/cocos 开发工具&#xff1a;Xcode&#xff08;13.0&#xff09; 开发需求&#xff1a;在工程中使用自定义的字体文件 1.将字…

Kali 系统——设置中文字体

因为kali是基于Debian的&#xff0c;那么得用Debian的汉化过程 1、重新配制安装的软件包 rootkali:~# dpkg-reconfigure locales 2、选择字符编码 把下面的三个选择上&#xff08;按空格键选择&#xff09;&#xff0c;其余取消选择&#xff0c;table 键选择 ok即可 字符编码…

autoCAD 向图形中添加文字

文字表达了图形中的重要信息。可以将文字用于标题栏、标注图形部件、提供规格说明或进行注释。 AutoCAD 提供多种创建文字的方法。对简短的输入项使用单行文字&#xff0c;对于较长而且有内部格式的输入&#xff0c;可以使用多行文字 (MText)。虽然所有输入的文字都使用建立默…

Linux添加中文字体

Linux添加中文字体 安装中文字体库 执行 yum groupinstall “fonts” 安装字体库 输入y 安装完成后&#xff0c;可以执行查看默认已经安装的字体 fc-list 查看已经安装的中文字体 fc-list :langzh-cn 添加指定的中文字体库 在/usr/shared/fonts目录下新建一个目录local(目录…