在网上看到过很多教程怎么部署网站或者前端项目到服务器上面,但是到自己亲自去按照步骤来部署的时候却发现有好多地方细节并没有介绍清晰,所以导致部署一个项目上去服务器的时候,导致出现了各种各样的问题,而现在就把个人的一些部署的经验和遇到的问题分享以下。(基于阿里云服务器搭建)
首先,现在你的服务器上面存在着tomcat,如何没有tomcat,可以到官网里面下载相对应的版本:https://tomcat.apache.org/download-90.cgi,
然后把下载回来的tar.gz包,上传到服务器相关目录下,解压并配置好相关文件即可(此步骤是配置tomcat,就不在此做太多介绍)。
1.部署第一步:先了解一下tomcat的文件夹中每一部分代表的是什么,存储的文件是什么类型的,而里面的文件主要有bin、conf、lib、logs、temp、webapps、work、LICENSE、NOTICE、RELEASE-NOTES、RUNNING.txt。如下如所示:
(1)其中,bin目录中的内容如下图所示:主要用来存放Tomcat的命令,很多环境变量也在此处设置。以.sh结尾的代表Linux下的命令;以.bat结尾的代表Windows下的命令。其中startup.bat代表windows系统下启动Tomcat的命令;shutdown.bat代表Windows系统下关闭Tomcat的命令。同理startup.sh代表Linux下的启动Tomcat的命令;shutdown.sh代表linux下关闭Tomcat的命令。(即此目录下存放linux系统下和window系统下启动启动和关闭Tomcat服务器的脚本文件)。其中修改catalina可以设置Tomcat的内存。
(2)conf目录下的内容如下图所示:存放tomcat服务器全局配置的各种文件。backup文件夹为它的备份(备份后才会出现)。catalina目录下可以设置默认加载的项目。catalina文件可以设置tomcat服务器内存大小。context.xml可以用来配置数据源之类的东西。logging文件记录tomcat服务器运行的日志记录。server.xml可以设置域名、端口号、IP、请求的编码、默认加载的项目。web.xml可以设置tomcat服务器支持的文件类型。
(3)lib目录下的内容如下所示:存放Tomcat服务器所需要的所有Jar包。我们在连接数据库时常常烦恼每创建一个项目就要引入一个对应的oracle的Jar包或MySQL的Jar。但是如果你把这两个Jar包放在此目录下,就可以引入一次,以后再创建项目时不需要每次都引入Jar包。
(4)log目录下的内容如下所示:用来存放Tomcat执行时的日志文件。清除此文件不会对Tomcat服务器产生影响。开始时此文件目录为空。只有运行了Tomcat才会在此目录下生成日志文件。
(5)webapps目录下的内容如下图所示:tomcat默认部署路径。目录用来存放应用程序,当Tomcat启动时会加载webapps目录下的应用程序。当然可以以war包、Jar包、普通文件夹三种形式发布应用。你也可以把应用程序存放在电脑磁盘的任意一个位置,但是在配置文件中要配置好,使其映射好,这个文件夹就是我们需要部署网站项目的文件夹位置:
(6)work目录下对应的内容如下:用来存放Tomcat运行时编译后的文件。清空work目录,重启Tomcat,可以达到清除Tomcat服务器缓存的目的。
(7) temp目录下的内容如下图所示:用来存放Tomcat执行过程中产生的临时文件。清除此文件不会影响Tomcat服务器。
2.既然上面了解过后tomcat的组成部分,那我们也知道我们的web项目该部署的位置了,那就是在tomcat中的webapps文件中。
然后我们需要把我们写好的网站或者前端项目进行打包,然后上传到我们服务器的webapps中。
然后这个时候,我们的项目算是已经部署到我们的tomcat服务器上面了,但是当我们通过ip地址访问或者域名访问(域名访问必须通过备案和域名解析后才能访问)时,发现我们返回的数据是404,那就是我们的项目还没有正常部署成功,那么此时问题出现在哪里呢?第一个想到的就是,是不是tomcat没有配置好相关的端口访问?
这个是正确的,因为tomcat第一安装后,默认访问的端口号为8080,那么此时我们就需要进去到tomcat的conf/server.xml文件中进行配置端口号(如果想使用默认端口号,此处可以不修改)。
进入conf目录下,我们通过vim命令进行编辑server.xml文件
然后通过输入直接在xml界面下输入“ /Connector”,快速定位到要修改的端口号中
,然后,输入"i"进行编辑模式,而我此处就把端口号"port"改为80,(因为端口号80为默认的ip或者域名访问地址,我的由于有域名,所以直接修改成80,可以通过域名直接访问,不需要输入端口号)
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
还有,如果服务器中配置了多个tomcat,为了防止端口号冲突,可以把其他的相关端口改都同意修改一下。
3.既然端口号设置好了,然后就进入/tomcat/bin/目录下面关闭服务器:输入
./shutdown.sh
然后再通过命令开启服务器:
./startup.sh
那么我们可以直接通过ip地址加上端口号进行访问了,那我们就可以输入地址 http://xxx.xxx.xxx.xxx:80(如果是80端口号的,可以不用输入80,因为ip地址或域名地址是默认80端口,如果不是80端口号,则必须输入相关的端口号才能访问)。
但是有一个问题就是,我们这边已经配置好端口号了,为什么还是不能正常放网站呢?
这个时候,想了一下,会不会是访问的网站入口文件的位置设置不正确呢?
那这个时候还是需要进入conf/server.xml文件中进行配置访问的目录下的index.html或者某个.js文件入口
进入server.xml文件下,把光标移动到文件的底部,找到设置web的入口路径:
然后在<Host name="localhost"....中设置你的网站路径
<Host name="localhost" appBase="webapps/MZouShow"
unpackWARs="true" autoDeploy="true">
此时再在vim环境下输入 “:wq" 保存当前修改的内容,然后再重启服务器,此时再进行通过ip或域名访问,此时能正常打开了网站的index.html文件了。
4.在上面步骤完成之后,虽然网站能正常访问了,但是现在又有一个问题来了,那就是资源包链接不上,此时就有两种可能:
(1)项目中使用了绝对路径,导致无法访问到具体的资源包;
(2)可能是服务器中配置资源链接的主路径不正确。
如果是上面的第一种可能出现的错误的话,那么首先就要检查自己的项目,是否使用了绝对路径,导致再本地开发的时候能正常链接到资源包,而一旦部署到服务器上面就无法访问。(注:一般开发web项目,除了新手,一般开发都是会使用相对路径开发)。
如果第一种情况不存在的,那么就可能是第二种情况导致了。此时,我们还是需要到我们的tomcat中进行设置。首先,我们就再次进入tomcat/conf目录下,进行修改server.xml文件。我们进入server文件后,再次把光标移动到底部:
此时我们需要配置<Context path....中的dicBase=""路径为项目路径,如果此处没有这行指令,我们就需要手动添加此行路径
<Context path="" docBase="/MZouFileApp/apache-tomcat-9.0.8/webapps/MZouShow" debug="0"/>
那么此时,我们的配置就修改完了,在输入":wq"保存修改并退出,此时再次重启tomcat服务器。重启后,再通过ip地址或者域名访问,此时我们的网站就能正常打开,并加载相对应的资源包(css,js等等)。
那么我们的web项目的部署就大功完成了。
大千世界,求同存异;相遇是缘,相识是份,相知便是“猿粪”(缘分)
From MZou