从零开始网站部署全过程记录

概述

自己电脑是win10,我已经在虚拟机上部署过一次了,对可能遇到的问题有个大概的了解,现在在vps上试试,一步一步来,遇到的问题一个一个解决。
操作系统用CentOS7服务器用Tomcat,数据库就用CentOS7默认的Mariadb(Mariadb完全兼容MySQL),项目已经打好了war包。


首先得有VPS,可以选择国内的腾讯阿里,也可以用国外的。有了VPS就可以开始部署了。


第一阶段:往服务器传文件的手段
我搜了一下“传输文件到VPS”,看到有ftp和sftp两种协议,具体的传输工具有好几种,flashFXP,WinSCP什么的,好像还有Xshell什么的我也不太懂,这里我选择了WinSCP,开始正常的下载安装。打开WinSCP之后看样子要新建一个链接,要选择协议,我选了SFTP

遇到问题:链接服务器失败,提示“拒绝SFTP链接,但是监听FTP,要换成FTP吗?”

我想我这随便用用,不需要加密什么的,所以就用FTP吧

遇到问题:服务器积极拒绝,无法连接

现在容我百度一波,看看怎么解决。
    查询过程中出现了一个经常见到但是我不明白是什么意思的词“SSH”
    把FTP放一放,先来看看SSH是啥?

嗯,我明白SSH是干啥的了,现在选回SFTP
    据网友所说,最有可能的就是VPS防火墙的问题了
    然后我又搜了“CentOS7防火墙”,浏览了一下相关的知识。

    先来查看一下服务器防火墙的状态
    但是我看不懂它返回的信息,不过信息里有一个Active显示dead,估摸着应该是没启动的
    于是我输入了启动防火墙的指令,执行成功,Active也显示running了
    然后我输入stop的那条指令之后,Active又变成dead了
    这说明服务器上防火墙就没启动
    那这就奇怪了,为啥连不上?我不禁陷入了深深的思考,局面开始jiang化。

这里我想到一个曲线救国的办法:看看别人怎么用winscp链接VPS的。
结果搜出来的教程全都是输入IP,输入用户名密码,点登陆,就成了??????卧槽???
曲线救国失败。

我突然想到莫非我根本就没有服务器端的SSH,有这个可能
但是SFTP失败之后我就选择了FTP了呀,FTP应该是早就有的协议吧
这里又进入了我的知识盲区,只知道FTP是个文件传输协议是解决不了这个问题的

我大致了解了FTP里面的一些东西了,链接不上是因为CentOS7本身不自带FTP服务端。
    CentOS7并没有自带FTP的服务端
    所以我们要自己安装,我推荐先看看FTP的百度百科,再结合下面的博客安装,应该就差不多了
    用yum命令安装,安装完默认是开启匿名登陆的,也就是可以用匿名用户的身份使用ftp服务
    (本来我想新建一个虚拟用户,但是感觉挺麻烦的,所以先用匿名的了。)
    匿名用户用户名是ftp或者anonymous,密码可以看后面给的网页
    安装完之后我就直接用WinSCP登陆了,登陆很成功,进入到了默认的文件夹

遇到问题:不能上传,只能下载,提示permission denied

分析问题:
    这应该就是文件权限的问题了,安装ftp的时候教程一直有提到防火墙和SELinux,我就默认是设置好的,现在终于遇到问题了。
    能下载说明ftp的21端口是没问题的,和防火墙没有关系,那么就剩SELinux的问题或者本身的文件权限的问题
    (其实看前面就知道防火墙已经关了,但是我早忘了。)
解决问题:
    我发现同步的文件夹也就是/var/ftp的所属用户是root
    所以我把该文件的所属用户改成了ftp,此时ftp这个用户对此文件的权限为最高
    WinSCP是用ftp和空密码登陆的,对这个文件是以ftp的身份访问的,所以该有的权限都有

遇到问题:permission denied

解决问题:
    重启一下ftp服务

遇到问题:卧槽,干脆连不上了

解决问题:
    没办法,只能把用户还回root了,重启服务,又能连接上了。

回到问题:permission denied

分析问题:
    上一步说明不是文件权限的锅,或许是ftp配置里面就不允许匿名用户上传文件?怕传病毒?
解决问题
    改一下配置
    看到配置文件里面果然是不允许匿名上传的
    允许上传和新建文件夹之后,重启服务再试一次

遇到问题问题:提示变成can’t create file类似的东西

分析问题:
    不能创建文件,看这次的错误提示很像是文件权限的锅
    但是ftp文件的所属用户又不能改,难道换一下ftp文件对其他用户的权限就行了?
解决问题:
    干脆新建一个文件夹吧,用户还是root,但是权限是777,再试一次。
    成功!!!!!
    说明就是文件权限的锅,和哪个用户没有关系
    ps:当然,应该可以不用777,通过改变用户的方法来达到目的,这里我就不实验了。

至此,第一阶段任务完成

附上配置文件翻译
百度百科:FTP
用来参考的博客
也可以选这个,这个比较全


第二阶段:安装Tomcat
第一步先来安装JDK

首先看看操作系统有没有自带的,有的时候会自带openjdk,和安装的时候的选项有关系
    有就删了,没有就从官网下载一个tar包,然后用上传到服务器。
    也可以直接用指令下载,不过我不知道一般下东西都是怎么知道那个url的
上传,找好位置,解压,配置,一套流程下来然后检测一下有没有安装好
    这里出现了一个奇怪的问题,租vps给的控制网页有好几个shell,有一个基本的shell检测不到java指令,另一个比较高级的却能???



上传速度比较慢,不知道是我的带宽有问题,还是FTP服务没有配置好。

上面的过程发现VPS提供商给的shell不好用,所以换成putty试试。

下载,解压,发现链接失败,提示拒绝什么的
    卧槽,猜猜什么原因???SSH配置文件里面的port居然不是22,惊喜不惊喜,意外不意外?
然后root登陆的时候提示access denied
    卧槽,再猜猜什么原因???因为root密码输错啦,我有个固定的root密码,结果人家的密码不是你设置的,怎么输都不对,最后到VPS的控制面板才看到真正的密码……

用putty连接了服务器,感觉比起自带的shell好了点,但是不多,凑合用吧

还有一开始传文件的时候说的ssh连接不到的原因,现在也知道了,centos7是自带openssh的,应该就是端口号有问题,或者root密码不对,下次不知道能不能直接用ssh传文件,不装ftp服务了。

第二步,安装Tomcat

套路都一样,下载,上传,配置
    配置里要提的是profile的路径,不知道不配置行不行
    还有就是端口号了,可以设置成80,当然也可以不设置
然后把上传的war包放到tomcat安装路径的webapp里面就会自动解压
然后就能通过IP地址访问了,或者可以考虑租个域名:)

弄好之后可以访问一些不需要数据库的网页

第三阶段:安装数据库

就用CentOS7自带的Mariadb

yum安装,配置
注意字符集的配置

接下来导入项目事先建好的数据库,当然要先从建表的地方导出成sql文件

上传,导入

然后连接不到数据库

出现的状况是可以访问tomcat的主页,也就是输入IP直接访问正常
输入登陆jsp页面的路径,即:IP/ServiceOld/index.jsp,也正常
一点登陆,也就是连接数据库的时候失败了,500,java空指针异常
    Mariadb是正常运行的,我不知道为啥
    先看了mariadb的端口是3306,项目里也是3306,没问题
    又检查了连接的语法,应该是没问题的
    java异常的log我又看不懂,只能大概知道是连接数据库有异常

    没办法了,看到网上有人给连接数据库的每一步都用try块包起来,只能这么做了
    本来想直接在服务器上改改,发现自己不太懂怎么改
    于是我就在eclipse里加上了信息,打算重新打war包
    war包打好,上传,把原来的war包删了,但是tomcat自动解压的文件没有删,直接把新war包移动到webapp里
    结果好了…………

WTF???本来打算看看输出的信息,看看哪一步出了问题,结果换了个war包就好了???
我就把两句代码加上了try块,然后就好了??

不知道一开始出了什么问题,也不知道为什么好了

期间我因为脑子混乱,重新导入war包的时候把数据库删了重新导入了一遍,而且第一次导入没有use,直接source导致失败,第二次才成功
或者是因为之前的加载驱动,连接数据库在一个try块里面,catch的异常类型是Exception,后来改成两个try块,异常类型也变了,有可能是这个原因。

综上,全部部署过程完成,网站可以正常访问

猜你喜欢

转载自blog.csdn.net/github_39312212/article/details/79345516