零、前言
第一次给零碎上线,尽管团队内曾经有其他同学写过部署文档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
文件,之前在终端上看到的那些日志信息改为写入到这个文件中,只须要查看此文件就能晓得我的项目是否启动胜利了。