web项目部署到CentOs 7上运行

来源:互联网 发布:淘宝怎么享受极速退款 编辑:程序博客网 时间:2024/06/06 01:57

环境准备

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 -pEnter 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 /tmpll

删除文件

删除这两个文件

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 --permanentfirewall-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的。