21-部署 Web 项目到 Linux

本文详细介绍了Web应用的部署过程,包括连接远程MySQL服务器,创建数据库和表,检查数据库配置,使用Maven打包,将war包部署到Tomcat,以及处理部署后的测试和常见问题。特别提到了SpringBoot项目的部署方法,强调了正确配置和避免服务器错误的重要性。

目录

1.什么是部署?

2.如何部署?

2.1.本机连接远程mysql服务器(可选项)

2.2.在远程服务器mysql数据库上执行创建数据库、表的脚本

2.3.检查项目中连接mysql服务器的地址和密码是否正确

2.4.使用Maven打包项目,生成一个xxx.war包

2.5.将war包上传到tomcat的webapps目录下

2.6.重启tomcat,使用url地址访问项目

2.7.测试功能

PS:二次更新项目(第二次以上包含第二次)注意事项

PS:SpringBoot项目部署


1.什么是部署?

工作中涉及到的 "环境" :

  • 开发环境:程序猿写代码用的机器。
  • 测试环境:测试人员测试程序使用的机器,一般是退役的部署机器。
  • 生产环境(线上环境):最终项目发布时所使用的机器,对稳定性要求很高。

把程序拷贝安装到生产环境上,这个过程称为"部署",也叫"上线"。

这个过程需要拷贝对应的 .class 文件和依赖的资源文件。(各种配置文件, html等)

一旦程序部署成功,那么这个程序就能被外网中千千万万的普通用户访问到。

换句话说,如果程序有 BUG,这个 BUG 也就被千千万万的用户看到了。

部署过程至关重要,属于程序开发中最重要的一环。一旦部署出现问题,极有可能导致严重的事故(服务器不可用之类的)。

为了防止部署出错,一般公司内部都有一些自动化部署工具(如 Jenkins 等)。当前我们先使用手工部署的方式来完成部署。

2.如何部署?

2.1.本机连接远程mysql服务器(可选项)

也可直接在服务器上操作。

2.2.在远程服务器mysql数据库上执行创建数据库、表的脚本

按照之前的数据库建表脚本,在服务器上运行,建立相同的表结构。

2.3.检查项目中连接mysql服务器的地址和密码是否正确

如果本地密码和服务器密码一致,此步骤可忽略。

  • 这里可以写127.0.0.1,就是通过内网去连接的,最终程序要放到自己的远程服务器上,自己的远程服务器和mysql是在一台服务器上的,所以可以写127.0.0.1。
  • 也可以写47.95.157.248自己的远程服务器外网ip,但是就多此一举了,因为在连接mysql时会先出去找这个外网,找到之后又回来了。
  • 所以直接写内网127.0.0.1,其通信速度是会快很多的。

重点要检查密码是否一致。

2.4.使用Maven打包项目,生成一个xxx.war包

2.5.将war包上传到tomcat的webapps目录下

2.6.重启tomcat,使用url地址访问项目

先关闭tomcat:

检查:

再启动tomcat并检查:

在浏览器使用url地址访问项目:

2.7.测试功能

①如果出现500,后端sql报错:

将useSSL=true或false进行修改,重新打包,重启tomcat尝试。

PS:二次更新项目(第二次以上包含第二次)注意事项

要先停止tomcat,再更新程序,上传文件(war包),再启动tomcat,再次访问项目。

防止在更新时文件被占用,无法成功覆盖文件,导致更新失败。

②如果点击发布文章,页面没反应,报500错误:

500内部服务器异常,出错原因:程序代码写的有问题!

是mysql中文乱码问题:在创建数据库表时没有设置编码格式,且在Linux服务器上没有配置编码格式,导致不支持中文。

解决:

a.删除之前的数据库,重建一个。

b.修改某个表的编码格式(支持中文):

设置字符集在后,创建表在前,就会出现虽然设置了编码但还是插入中文失败的情况,此时可以通过修改某个表的字符集来将原来的表支持中文:

alter table 表名 convert to character set utf8mb4

PS:SpringBoot项目部署

  1. 打包项目(.jar包),在Linux服务器创建对应目录文件夹,将jar包放入其中。
  2. 进入到jar包所在目录下,使用命令java -jar xxx.jar(xxx是jar包名字),回车,直接可以运行。若想在关闭FinalShell窗口后,项目在后台依旧运行,则使用命令nohup java -jar xxx.jar。

注意:

  • java -jar xxx.jar 和 nohup java -jar xxx.jar 是两个不同的命令,它们的功能和运行方式有一些区别。
  • java -jar xxx.jar:该命令是在终端中直接运行Java可执行jar文件。它会在当前终端窗口中启动Java应用程序,并将控制台输出打印到该窗口。当关闭终端窗口时,Java程序也会随之终止。
  • nohup java -jar xxx.jar:该命令使用了 nohup 命令,表示"no hang up",即在后台运行命令,并忽略SIGHUP(hangup)信号。这意味着即使关闭终端窗口,Java程序也会继续运行。nohup 命令还会将程序的输出定向到一个文件(默认名为nohup.out),而不是打印到终端窗口。这对于长时间运行的任务非常有用,因为你可以在后台运行程序,关闭终端窗口,然后稍后再回来查看输出日志。

总结:

java -jar xxx.jar是在前台运行Java程序并将输出打印到终端窗口,而nohup java -jar xxx.jar 是在后台运行Java程序并将输出重定向到文件。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值