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 update
apt-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必须都对应。