零、前言
第一次给零碎上线,尽管团队内曾经有其他同学写过部署文档 https://segmentfault.com/a/11…,但本文中咱们须要补充一些细节,使操作更简便
本文次要是补充内容,所以假如服务器上曾经部署了运行环境、数据库和 nginx。
一、连贯服务器
咱们通常应用 SSH 连贯 Linux 服务器,应用 scp 命令在本地和服务器之间传输文件。
那么有没有更不便的办法呢?答案是有的。
能够借助 SFTP 工具,来实现图形化传输文件,就像在本人电脑操作上一样。
Windows -> WinSCP
官网地址:https://winscp.net/eng/index.php
这个工具能够与服务器建设 SSH 连贯,并且图形化浏览服务器上的文件,并反对拖拽。
MacOS -> Termius
官网地址:https://www.termius.com/
与 WinSCP 性能雷同,既能管理文件,也能执行 Bash 命令。
并且 Termius 反对 MacOS、Linux、Windows、Android,网上能找到谐和版本。
有了这种可视化 SFTP 工具后,拷贝文件就不须要再用命令行了。
二、编译我的项目
Angular:
// 编译 Angular 我的项目
ng build
而后就能够生成 dist 文件夹,angular 代码全副编译成了原生 JavaScript 代码。
稍后须要用到 dist 中的所有文件
SpringBoot:
// 编译 SpringBoot 我的项目
mvn clean package
咱们只须要用到 target 中的 appName.jar 这个文件。
须要留神的是,编译过程会把包含配置文件在内的所有文件封装,这意味着编译后就不能随便更改端口号、数据库等各种配置信息,因而在编译前,须要把各个参数调整至与生产环境统一。
三、复制文件
关上 SFTP 工具,找到原来的代码地位。
为了稳当起见,不要间接删除上个版本的代码,而是将它们重命名(万一出错了还能复原)。
而后间接把文件夹拽过来即可。
四、敞开历史我的项目的过程,启动新过程
Angular
因为前端应用的 HTML 三件套、服务器是 Apache 或 Nginx 负责,当服务器上的代码文件变更时,一刷新就能加载新的代码,所以不须要重启服务。
SpringBoot
但 Java 我的项目一旦运行,是不能自动检测变更的,所以必须重启这个 Java 过程。
// 查看端口占用状况
sockstat -4l | grep 后端的端口号
// 举例
sockstat -4l | grep 8093
// 返回值(本例中,2279 为过程号)// log java 2279 26 tcp46 *:8080 *:*
// 敞开过程
sudo kill 过程号
// 举例
sudo kill 2279
再次查看端口占用,曾经没有过程占用此端口了。
此时才能够在我的项目根目录输出
// 在服务器后盾运行 jar 包,不会随着终端退出而进行运行
nohup java -jar test.jar
运行胜利后,控制台不会输入任何信息。
但在 jar 包的同级目录会有一个 nohup.out
文件,之前在终端上看到的那些日志信息改为写入到这个文件中,只须要查看此文件就能晓得我的项目是否启动胜利了。