Java项目部署到远程服务器(详细步骤)

38次阅读

我们将本地开发好的项目部署到远程服务器上 , 使任何机器都可以通过我们远程服务器的公网 ip 或者域名加上端口号访问到我们的项目。这里详细的列出每个步骤 , 并且也列举了在部署过程中常见的问题 :

通常来说 ,Springboot 部署会采用两种方式 : 全部打包成一个 jar, 或者打包成一个 war。现在讲一下打包成 jar 部署。

一. 环境搭建

我们以当下最流行的 springboot 项目为例 , 最终打成的是一个 jar 包 , 先 clean 后 package,jar 包要在远程服务器上跑起来 , 环境搭建是第一步 , 也就是安装 jdk 环境 , 至于 tomcat 的话 ,springboot 自带 tomcat, 所以不安装也可以 ;

Java项目部署到远程服务器(详细步骤)插图

二. 数据库的部署

在本地开发的时候 , 我们代码里面的数据库连接主机名写的是 localhost, 之所以这样写了能访问到 , 那是因为我们的项目和数据库都在我们的本地机器上 , 所以可以访问到 ; 而如果项目部署到远程服务器上 , 要访问到数据库 , 应该先部署数据库 , 至于数据库连接还能不能写 localhost, 要分两种情况 , 如果我们的数据库和项目都部署到了同一台远程服务器上 , 那可以 ; 如果部署在不同机器上 , 那显然不行 , 这种情况的话数据库连接的主机名就需要修改成数据库所部署的那台机器的公网 ip 或者域名。

这里用到两种方法实现数据库部署到远程服务器 :

方法一 :Xshell 连接远程服务器进行命令行操作

1. 将本地的数据库导出成.sql 文件
2. 在远程服务器中创建一个文件夹 , 专门存放.sql 文件的
3. 执行 rz 命令 ( 前提是安装了 lrzsz), 将本地的.sql 文件上传到远程服务器上该文件夹 ; 也可以使用 xftp 实现文件传输
4. 登录 mysql:mysql -u root -p( 回车后输入密码 )
5. 执行.sql 文件之前需要先创建对应的数据库

CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

6. 选中刚刚创建的数据库之后再执行.sql 文件 :use 数据库名
7. 执行.sql 文件 :source ***.sql
( 注意如果我们是在.sql 文件所在的文件夹中执行该命令就不用加路径 , 否则需要加上.sql 文件所在路径 )

方法二 : 本地 Navicat 连接远程服务器的数据库进行可视化操作

同样是先将本地的数据库导出成.sql 文件 , 下面是部分截图 :

Java项目部署到远程服务器(详细步骤)插图1

基本都是表结构和表数据 , 可以看到导出来的.sql 文件并没有为我们创建数据库 , 所以在导入.sql 文件之前需要先手动创建数据库 , 并且在我们导出来的.sql 文件中添加一行加上我们的数据库。

Java项目部署到远程服务器(详细步骤)插图2

三. 把本地打好的 jar 包上传到远程服务器

1. 当我们已经将数据库部署到远程服务器上 , 如果数据库和项目部署不在同一台远程服务器上 , 那么在将项目打成 jar 包之前需要先修改数据库连接的配置信息 , 将主机名修改成数据库所部署的那台机器的公网 ip 或者域名 , 如果数据库和项目部署在同一台远程服务器上 , 那么主机名可以继续使用 localhost;

2.Xshell 连接阿里云远程服务器 , 并使用 xftp 将本地的 jar 包传输到远程服务器上 , 如果安装了 lrzsz 就可以直接使用 rz 命令上传 ;

3. 放行端口号 , 部署项目成功之后 , 要能够访问到项目 , 还应该在阿里云控制台开放对应的端口。

4. 启动项目 , 使用 nohup java -jar jar 包名 & 命令运行 jar 包。【注 :nohup 加上 & 表示项目可以在后台永久的执行 , 即使关闭 Xshell 终端也不会停止运行 ; 如果后面想要停止该项目的运行 , 可以直接结束该项目端口占用的进程。】

# 通过进程名结束占用端口的进程 killall 进程名
# 通过进程 ID 结束占用端口的进程 kill 进程 ID
# 通过进程 ID 强制结束占用端口的进程 kill -9 进程 ID

以上命令执行之后会提示 :nohup: ignoring input and appending output to‘nohup.out’, 这是正常提示 , 并不是错误 , 直接打回车就可以。该提示产生的原因是 nohup 默认会把标准输出重定向到默认文件 nohup.out 中 , 也可以自定义该输出文件 , 例如 :nohup java -jar jar 包名 >temp.txt & 但是标准错误输出没有重定向到某个文件 , 所以会有该提示。

Java项目部署到远程服务器(详细步骤)插图3 如果想要不输出该提示 , 省去打回车键的操作 , 那么可以使用以下命令 :nohup java -jar jar 包名 2>&1 & 解释 :2>&1 是将错误提示信息的输出重定向到标准输出 , 而这里的标准输出已经重定向到默认文件 nohup.out 中 , 也就是说标准的错误提示也直接输出到 nohup.out 中 , 所以就没有提示了 , 也就不用再打回车了。

原文链接:https://blog.csdn.net/qq_41595452/article/details/120654855

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