在云服务器上部署javaweb项目其实很简单,但是由于在这个过程中全靠自己摸索,踩了很多坑,废话不多说,现在就开始。
宝塔这个真是方便,相信大家都安装了,没安装的安一个:我们就是在宝塔里进行部署的。
一、部署项目的基本环境
宝塔中需要安装以下应用:
- Niginx 1.20.2 版本大差不差就行
- php5.6
- MySQL 5.6.5 适合就行
- Java项目管理器 2.5
二、 准备好域名和数据库
域名这里我会用 apple.com 来表示
- 首先我们要有一个解析好的域名 即可以访问的
2.在宝塔中创建一个数据库,并把我们项目相关的数据库导入
创建好数据库后,点击导入,选择我们项目的SQL文件,SQL文件获取可以在本地数据库上转储SQL文件,然后上传
然后配置项目内数据库连接信息:
三、项目打包war包,上传
1. 项目打包我们使用Tomcat进行打包,之后在项目target目录里找到打好的war包复制到桌面。
2. 找到你安装的java项目管理器,安装对应Tomcat。
3. 将war包上传到对应tomcat的webapps目录下
四、部署项目
进入项目管理器:
然后映射
最后一步把反向代理状态开启
至此项目就可以在用域名进行访问了
五 注意事项
一
可以看到Tomcat版本不同java jdk 的版本是不一样的,我们本地的项目若是1.8编译的,到服务器上使用1.7的Tomcat可能会出现资源无法访问的情况。因此要注意版本
二
要把数据库的端口 3306 开放
Tomcat的也开放 8081,8082
其他必要端口也要开放,具体看情况。
三
项目在本地服务器上可以运行但是到云服务器上就不行,这种情况解决如下:
这种情况大概率就是 servlet 配置的问题,我在项目中使用的是注解的方式,这样就不用再web.xml中去写路径配置了,然后在本地中可以运行的项目,部署到服务器竟然404,在跳转页面时说你路径上的资源找不到,大概就像下面这种情况:
本地项目中:
项目名字叫 apple-demo
页面中有一个查看数据详情的链接,点击链接后需要搜索数据在显示,搜索数据这个服务我们用了servlet注解,如下这样点击后就会从apple-demo下面找到那个搜索数据的注解执行,没问题。
<td><a href="/apple-demo/selectByIdServlet?id=${apple.id}">查看</a>
但是部署到服务器上后出现了404 [ apple-demo/selectByIdServlet ]找不到资源的情况。
这是因为apple-demo是一个虚拟目录,我们是需要在服务器上找到webapps目录下的对应文件,将里面带有项目名字的去掉就OK了。
如果不是这种情况的话那别的情况也有可能。
<td><a href="/selectByIdServlet?id=${apple.id}">查看</a>