环境准备
JDK
如果你的虚拟机上还没有JDK环境你可以参照我的CentOs 7S下安装JDK8去安装
Tomcat
如果你的虚拟机上还没有Tomcat环境你可以参照我的CentOs 7下安装Tomcat8去安装
Mysql
Mysql是非必须的,等web项目在你虚拟式运行时可以连到你本地电脑的Mysql;但是本篇博文是直接连虚拟机上的Mysql,如果你虚拟机还没有Mysql可以参考我的CentOs 7下安装MySQL5.7
web项目
这里给大家一个福利,我简单写了个SSM框架的web项目可以在我github上下载源码,注意改下jdbc.properties文件。当然大佬们可以用自己写的项目。
部署步骤
开用户远程连接权限
这里根据你的web项目war包的连接Mysql的用户,我直接用的是root,所以需要给root开启权限,细心的同学会发现你的mysql库的user表的host字段是localhost,所以你可以用localhost:3306去连接你的mysql。
登录
输入下面命令
[root@chenyu ~]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
[root@chenyu ~]#
报错
可以看到我报了
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (111)
的错。如果你没有报错直接登录进去了请忽略,跟我同样报错的同学请看下面的解决方案。
找到文件
进入/tmp目录可以看到mysql.sock和mysql.sock.lock两个文件
cd /tmp
ll
删除文件
删除这两个文件
rm -rf mysql.sock*
重启MySQL服务
service mysql.server restart
重启后再次登录就可以了。
授予权限
上面说了我用户是root,密码替换成你自己的,然后记得刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mima' WITH GRANT OPTION;
FLUSH PRIVILEGES;
防火墙开启8080和3306
8080是虚拟机上tomcat的端口(默认端口我没有修改,如果你修改了就要跟着变),3306是虚拟机上mysql的端口,具体命令如下,上面是8080下面是3306的
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
然后防火墙重新加载
firewall-cmd --reload
打包web项目
先修改jdbc.properties文件的url 为
···
url=jdbc:mysql://192.168.44.128:3306/further?useUnicode=yes&characterEncoding=utf8
···
192.168.44.128是我这台虚拟机的ip,你需要替换成自己虚拟机的ip,如果不知道可以通过ifconfig命令来查看,至于further是我项目数据的名字,后面可以通过本地的navicat去连接虚拟机的mysql进行建库建表操作非常简单就不多说了。
由于我用的eclipse,你可以鼠标放在项目上,右键选择Export>war file会出现
上面是填写项目名,下面是打包后的war包在你本地的路径。比如我是D:\linux\further.war
上传war
先开启tomcat服务
/usr/local/tomcat/bin/startup.sh
然后进去tomcat的webapps目录
d /usr/local/tomcat/webapps
输入下面命令,选择你刚刚上传的war包路径
rz
传输完毕后,就部署完毕了,接下来验证以下
验证
去浏览器调用一个get接口
http://192.168.44.128:8080/further/giftc/selectListCondition
会出现
接口调用成功说明确实部署是OK的。