经过两天的折腾, 终于把 Java web 项目部署到阿里云服务器了。
网上的教程有些太老了,现在整理下新的东西,下面来讲讲踩坑的过程。
配置清单
- web 开发软件:Intellij idea 2018
- 阿里云服务器:Windows 8
- MySQL:5.1.6
- Tomcat:8.5
一、使用 intellij idea 打包 web 项目
1、点击菜单栏 File->Project Structure
2、依次点击如下图:
注:如果第二步中没有 For xxxxxx,那就是你之前没有配置过Web Application:Exploded,先进行配置,再做第二步即可,name 自行命名,Output directory 指定 war 包的输出路径,最后点击 OK,回到代码界面。
3、点击菜单栏 Build->Build Artifacts->选择刚添加的Artifacts->build
4、在工程的 /out/artifacts/xxx/ 目录下就可以看到打包好的 war 文件
二、服务器安装MySQL、Tomcat
这里不进行讲解,安装方法网上很多
需要注意的是: 安装 MySQL 过程中,选择密码验证方式时,最好选 5.x.x
三、部署 war 包到服务器
1、将 war 包放在 Tomcat 的 webapps 目录下
2、启动 Tomcat 服务器,此时,会自动解压 war 包
3、访问 API 接口,格式如下:
http://xxx.xxx.xxx:8080/刚解压的war包文件名/path
xxx.xxx.xxx 是你云服务器的公网 IP,端口号 8080 默认关闭,需要在安全组策略中开放该端口。
访问接口没问题,这就算部署好了!!!!!
不过访问时,还可能遇到一些问题:
1、访问404
如果在本地环境下正常,那么很多情况下就是路径问题
比如:
xxx.xxx.xxx:8080/path
改成
xxx.xxx.xxx:8080/解压后的war包文件名/path
2、连接数据库报错:CLIENT_PLUGIN_AUTH is required
原因:MySQL 版本与 mysql-connector-java.jar 版本存在不匹配的问题
解决:要么升级 MysQL ,要么添加与 MySQl 版本一致的 mysql-connector-java.jar
比如 MySQL 5.x.x,那你的 mysql-connector-java.jar 也换成 5.x.x
3、数据库报错:too many connections
原因:连接数超过限制,以至于数据库无法访问。默认的连接数是100
解决:进入 MySQL 安装目录, 打开 MySQL 配置文件 my.ini
找到 max_connections=100,改为
max_connections=1000
wait_timeout=5
再重启 MySQL 服务即可
最大连接数可视项目需要修改。
好了,这就是本次部署遇到的坑,其他问题也可提出来,一起讨论@@