1. 安装XShell和Xftp

其中Xshell用于输入Linux命令,Xftp可以方便地进行文件传输。

2. 连接服务器

之后输入用户名密码保存指纹秘钥就可以正常使用了。

服务器就是一台Linux主机,操作方式与Linux系统操作相同。剩下的部署内容,可以简单的理解为:在Linux电脑上把要用的东西安装好,然后再开放防火墙。

3.部署

后端服务器部署

存放springboot程序,也就是我们的jar包。

0.记得配置JDK环境

1. 使用Xftp上传jar包至自定义位置

2. 使用java命令 启动jar包

java -Xmx1024M -Xms1024M -jar babelcontract-1.0.0.jar

之后就可以正常启动。还有什么参数可以根据需求添加。

3. 启动成功后就会像idea中的控制台一样,打印日志信息

但是问题来了,我把Xshell关了之后,程序就停了,这玩意儿要一直启动着,咋办啊?

4. 安装screen命令

根据Linux操作系统不同,有不同的安装方式。我的服务器有AlibabaLiunx,Unbantu,Centos。

使用的命令都不同


apt-get updateapt-get install screen#或者yum install screen

安装成功后就可以使用了。

screen命令使用方式

screen命令会帮我们创建多个命令行窗口。我们可以通过screen命令进入不同的命令行窗口,来保证指定窗口不会被关闭,处于后台运行。

常用命令:

1. screen -ls 查看当前窗口列表

2. screen -S <窗口名称> 创建一个指定名称的窗口并进入(名称大小写敏感)

3. screen -r <窗口名称>/<窗口编号> 进入指定的窗口

4. screen -d  <窗口名称>/<窗口编号> 将指定窗口的状态设置为Detached

5. ctrl + a + d 退出指定窗口,让其在后台继续运行,同时将状态设置为Detached

我对于screen命令没有过多地研究,只是作为工具使用。

有了如上五条命令后

创建一个新窗口并运行jar文件

第一步: screen -S babelcontract 创建一个名为babelcontract的窗口

第二步: 第一步之后会自动进入该窗口,在这个窗口执行java -jar命令运行jar包

第三步: 待运行成功后,ctrl + a + d 退出窗口,就可以让babelcontract窗口正常在后台运行啦。

想要回到窗口的时候:

第一步: screen -ls 查看当前窗口列表

其中红框为窗口id(具体是什么我也没研究,只知道是唯一标识的,就先叫做id吧) 黄色框为名字 紫色框为窗口状态

第二步: screen -r 113945 即可返回该窗口

第三步: 执行完期望的操作后,ctrl + a + d 返回即可。

因为网络问题断连之后

因为网络问题断连之后,窗口不会处于Detached状态。这个时候可能会出现使用screen -r无法返回的问题。这个时候只需要使用screen -d 113945 让目标窗口状态变为Detached状态。再次使用screen -r即可返回。

更多screen命令可以深入学习,只要掌握这五个,是够用的。

Redis服务器部署,MongoDB服务器部署,MySQL服务器部署

我购买的服务器都是普通的Linux主机,这些需要自己配置。

Redis和MongoDB的使用方式和Linux中的操作方式一致。安装教程网上有很多。安装完即用。

但是MySQL安装比较复杂。推荐使用宝塔面板。宝塔面板中可以快速安装MySQL。比较方便。

前端服务器部署

虽然前端页面是Vue做的,通过Node.js可以直接访问,但是我嫌麻烦还是用了比较简单顺手的Tomcat。

安装Tomcat网上也有很多教程,使用也很简单。装完之后,把打包好的Vue放进去启动就好了。

设置80端口访问主页

为了好看,大家能直接输入域名访问到网站主页,需要将端口设置为80,因为http默认访问端口为80。

#加端口号不好看
http://www.bable.ink:8080#直接输入域名访问的是80端口
http://www.babel.ink

tomcat默认端口为8080,需要去修改server.xml配置文件。

修改步骤:

第一步:找到tomcat安装目录下的conf文件夹中的server.xml文件

第二步:修改端口号,将如图所示位置的参数由8080设置为80。

第三步:添加默认启动路径,在<Host>标签中添加如下内容

<Context path="" docBase="../webapps/Babel"  reloadable="true"/>

其中docBase即为默认路径,我的项目存放在webapps下的Babel文件中,路径设置为Babel或者../webapps/Babel都可以。只要没动web.xml中的如下配置,访问会默认打开目录下的index.html

如果有自己默认的主页,定义的名称不是index,那就去web.xml里面找到上图部分添加一条就好了。比如有自己定义的myIndex.html 就添加一条<welcome-file>myIndex.html</welcome-file>

4. 开放防火墙

租用的服务器需要去开启端口访问权限不然是访问不到的

之后就可以正常访问啦。

踩坑记录

Linux和windows不太一样,部分配置在windows上生效但是,linux上不一定生效,还有一些比较特殊的东西。

邮件发送

项目涉及到一个邮件发送的需求。使用的是SpringBoot自带的邮件发送。

邮件发送功能默认使用的是25端口,但是阿里云服务器为了安全,没有开放25端口,需要额外在application.yml中添加配置。

#Linux操作系统特殊处理 阿里云服务器没有25端口 所以设置: 使用465端口发送邮件 并启用SSL加密
spring.mail.properties.mail.smtp.socketFactory.port: 465
spring.mail.properties.mail.smtp.ssl.enable: true

数据库开放远程连接

数据库默认是不支持远程连接的,项目往往要求mysql需要单独部署在一台服务器上进行远程连接。需要手动设置。我用的是mysql5.6,使用如下命令开放即可:

grant all PRIVILEGES on <数据库名>.* to <用户名>@'<目标主机IP>'  identified by '<密码>';#其中目标主机IP是指,想要让mysql放行哪台主机,就写哪台主机的IP。
#比如现在要88.88.88.88连接本机mysql,这个位置就写88.88.88.88

放行之后就可以正常通过JDBC远程连接了,用户名密码和IP必须都对应。

巴别塔合约作战终端开发日记2——Linux系统部署项目相关推荐

  1. 巴别塔合约作战终端开发日记3——服务器负载优化

    对于性能优化方面,首先服务器硬件配置还有2核2G内存5MBPS带宽.从硬件上来说其实并不支持太多的访问量,即便是加了Redis作为高速缓存,效率也堪忧.需求方面存在一条:活动会在定时开放,并且为了竞技 ...

  2. 巴别塔合约作战终端开发日记4——后端效率优化

    注册优化 注册功能存在很严峻的短时间访问压力,并且这个功能会直接影响用户体验(我连账号都注册不了何谈后续呢?).为了防止这个问题的发生,一共经历了三个阶段的修改: 第一版:写锁+数据库判重+直接数据库 ...

  3. linux部署项目文档,Linux系统部署项目

    Linux系统部署项目 在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署 静态部署指的是我们在服 ...

  4. 巴别塔合约终端开发日记1-----技术选择

    巴别塔合约终端开发日记1-----技术选择 需求 拿到开发任务之后,组里给出的开发时间差不多两个月左右.由于开发人员只有我自己一个人,开发时间还是比较紧张的.在开头的时候很重要,避免频繁修改代码才能尽 ...

  5. 烧录imx6需要的linux空间,IMX6Q学习笔记——开发板的Linux系统更新和烧录

    IMX6Q学习笔记--开发板的Linux系统更新和烧录 记录自己在电鱼电子开发SAIL-IMX6Q全能板后,并且对系统和模块进行简单测试的过程之后对开发板的Linux系统进行更新和烧录的记录过程,算是 ...

  6. 电脑向linux板卡传文件,ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

    ARM 开发板嵌入式linux系统与主机PC通过串口传输文件 本来以为按以下两篇文章就可以几步轻松搞定这个问题,没想到遇到两个小麻烦: 1,我用的xp虚拟机下redhat9.0做主机,按照下面第一篇文 ...

  7. Friendly ARM开发板安装Linux系统教程

    友善之臂ARM9开发板安装Linux系统教程 前言:智能蘑菇房项目的运行环境是友善之臂ARM9开发板,所以需要在上面灌一个linux系统,下面我来简单介绍一下. 准备 读卡器 SD卡 串口线一根(US ...

  8. 只需4步,让OKA40i-C开发板的Linux系统拥有中文显示

    如果你试着在Linux系统里面输入中文,那么将会有一片乱码呈现在你面前,这是因为Linux系统的默认语言是英文.但是如果可以显示中文的话,那么在使用过程中的便利程度一定会大大提升.今天小编就通过飞凌嵌 ...

  9. 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...

    阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...

最新文章

  1. 【Windows系统】基于vscode搭建go语言开发环境
  2. 关于网络连接方式的总结(HostOnly,NAT....)
  3. mysql 安全扫描_MySQL 安全和监控 - Can't Wait Any Longer - OSCHINA - 中文开源技术交流社区...
  4. TSP_遗传算法求解
  5. Qt C++ 检测优盘插入或拔出
  6. 地铁上怎么那么多钢管女郎?
  7. MySQL 十大常用字符串函数
  8. 记忆集、卡表、G1垃圾收集器简介
  9. python日期格式转换成13位时间戳_python生成13位或16位时间戳以及反向解析时间戳的实例...
  10. Linux 下 I/O 多路复用技术 epoll
  11. Excel导入-----导出(包含所选和全部)操作
  12. C#获取%AppData%路径的方法
  13. linux 基础命令汇总
  14. 软件项目管理的重点知识
  15. 华为无线模板之间的应用关系图
  16. 企业文化海报设计模板,企业文化经典标语挂图素材
  17. 河北档案费2016年取消
  18. img ,background-img,background-size
  19. 重定向和转发的概念及区别
  20. 《大长今》分集剧情介绍(上)

热门文章

  1. dns劫持 tplink_路由器dns被劫持有什么后果【图】
  2. 关于斐讯K2路由器 j.s9w.cc 劫持的问题。
  3. 信号的反射(振铃、台阶、回勾、尖峰毛刺)
  4. 【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...
  5. 优先级反转的经典案例——火星拓荒者
  6. 经典回顾:福禄克FLUKE DTX-1800如何配合DTX-LABA测试6A,7类跳线patchcord
  7. 属相婚配php,属兔的属相婚配表_属兔的最佳属相婚配
  8. MySQL中like查询是否会使用索引
  9. 乖离率背离公式_股价偏离率是什么 BIAS指标计算公式-BIAS-技术指标-股票入门基础知识学习网...
  10. 日期控件--WdatePicker的使用小技能