前言:本项目是SSM web项目,小白一枚,也踩过不少坑,于是自己总结了一份经验,供大家参考。首先选择云服务器:比如阿里云、腾讯云、百度云等。推荐使用FinalShell 、XShell。不熟悉linux命令的可以选择FinalShell ,操作非常简单易懂。
(FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux。官网:http://www.hostbuf.com/)
主要分为以下几个步骤:
1.在服务器上安装配置jdk、Tomcat、mysql
(1)安装jdk:yum -y install java-1.8.0-openjdk.x86_64
查看jdk的版本:java -version
有时候需要重启才可以看到这些配置信息。如果出现上面的语句,说明服务器的jdk已经配好了。
(2)安装mysql:这里推荐两篇非常优秀的文章:
https://blog.csdn.net/ningwentao1234/article/details/86611390
https://www.cnblogs.com/biehongli/p/11160839.html
(3)安装Tomcat:官网:https://tomcat.apache.org/
(注意:安装Tomcat之前要先安装java jdk。Tomcat不管是windows还是Linux系统,都是解压后再配置一下就可以使用)
选择后缀为tar.gz的版本,下载到本地。
mkdir /usr/local/tomcat
:创建/usr/local路径下的tomcat文件夹(mkdir:创建文件夹,路径自己定义即可,提示:最好统一归类,方便查找)
通过rz
命令将下载到本地的压缩包上传到服务器上,并将压缩包放到/usr/local/tomcat路径下。或者在FinalShell中直接拖拽文件到指定位置就可以了。
tar -xzvf apache-tomcat-8.0.9.tar.gz
:解压 apache-tomcat-8.0.9.tar
启动Tomcat,来查看是否安装成功:
注意:到tomcat的bin文件夹下输入启动和关闭命令
cd /usr/local/tomcat/apache-tomcat-8.0.9/bin
./shutdown.sh 关闭
./startup.sh 启动
先输入关闭命令,目的是为了查看tomcat是否已经启动。
如果是阿里云的话,还需要在阿里云控制台添加安全组,腾讯云是不需要的。
最后在浏览器输入ip:8080
,如果出现下面的网页,则说明tomcat安装成功。
当时还遇到了Tomcat配置提示权限不够的问题,解决方法:
打开终端,进入到Tomcat的上一级目录里面,如Tomcat所在目录是/usr/local/Tomcat
在终端输入命令sudo chmod -R 777 /usr/local/Tomcat,
那么Tomcat文件夹和它下面的所有子文件夹的属性都变成了777(读/写/执行权限)注意路径!
当然这里有个偷懒的小技巧。tomcat在windows系统和Linux系统上是通用的,启动的命令和配置不一样。所以我直接将本地项目使用的tomcat8.0.9压缩包上传到云服务器。并解压。这种方法目前还没有出现过错误,并不影响使用,但是没什么理论依据。
(如果是SpringBoot项目需要在pom文件中添加取消内置tomcat的依赖,自己修改tomcat的配置文件等,与SSM项目略有不同)
2.项目中连接的数据库需要变成自己服务器上的远程数据库
在jdbc.properties文件中,修改数据库信息。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://ip:3306/库名?useUnicode=true&characterEncoding=utf8
jdbc.username=用户名
jdbc.password=密码
在navicat中选择“转储sql文件”,导出.sql后缀的数据库文件。连接到远程服务器的数据库后,一定要自己新建一个数据库,注意名字要相同,再“运行sql文件”。
3.maven项目生成war包,启动Tomcat
(1)执行maven clean 、install,然后在target文件夹中会有一个war包(xxx.war),将war包改名叫ROOT,这样启动后的url地址可以忽略文件名。
(2)将ROOT.war放到Tomcat中的webapp下
(3)然后到Tomcat的bin目录下,./shutdown.sh
;然后./startup.sh
。就可以启动tomcat了
在浏览器上,输入网址:http://公网ip:8080/index.html,就可以访问了。
请多多检查路径,有时候往往不是命令的错误,而是路径找的不对,导致一直提示错误。
小bug记录:部署到服务器,修改war包不更新
ajax请求路径一直是localhost,正确路径应该是公网ip,所以一直报未知网络错误。
将war包在本地Tomcat测试,显示路径都是正确的,但是一到远程服务器上,显示的路径还是未修改之前的localhost,这说明war包是没有问题的。
考虑缓存问题:服务器或者Tomcat。不过按照网上的清缓存方法,修改了很多次,问题依旧没有解决。
(tomcat的缓存:打开Tomcat目录,打开work\Catalina\localhost,删除对应的项目名称即可,此文件是Tomcat对项目的缓存)
最终采取了最简单粗暴的方法,将云服务器上的Tomcat删除(彻底删除:rm -f命令),再重新执行上面的操作,问题就解决了,很神奇。。。。