云服务器CentOS7.3+Tomcat部署JavaWeb项目
关键词:云服务器、centos、tomcat、mysql、javaweb
本文主要记录了在云服务器搭建环境,部署javaweb小项目的过程,希望对有需要的朋友有点参考价值。其实这方法跟在自己电脑上部署是一样的,只是操作系统不一样,操作命令也就不太一样。当然,在云服务器上部署可以外网访问;我的云服务器是centos7.3系统镜像,自行选择SSH客户端软件连接,如Putty、FinalShell等。Putty我觉得配置(参考《Putty配置说明》 )说得很麻烦很多,我用的后者。下面是具体步骤。
安装tomcat
我的程序是在tomcat上跑,所以首先安装一个tomcat,安装版本自己爱好了,去官网下载。
- 连接虚拟机,我在root/路径下新建一个叫tomcat的文件夹,用来存放和安装tomcat;
[root@lzy ~]# mkdir -p tomcat
- cd tomcat进入到tomcat目录下,接着下载tomcat的压缩包,去官网找链接。我用的是http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz,使用wget+下载地址 下载;
[root@lzy ~]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz
用ls和ls -lht(查看文件大小)检查一下压缩包有没有问题;
- 没有问题就解压压缩包,tar -zxvf+压缩包名字。
[root@lzy ~]# tar -zxvf apache-tomcat-9.0.13.tar.gz
解压完ls看一下会有一个文件夹;
- 进入文件夹bin目录下ls查看启动命令,如图:
shutdown.sh就是关闭了,startup.sh即是启动脚本了;
我们试着用 ./startup.sh 启动看看,发现启动失败,那是因为还没配置Java环境变量。。。只能又去配置jdk。
配置java环境变量
配置环境变量有两个方法:方法1:yum在线安装:
浏览jdk版本 yum -y list java*
安装jdk yum -y install java-1.8.0-openjdk*
yum安装命令网上有很多,具体怎样我没试过,可以自己看看。
方法2:官网下载压缩包安装,我用的是这个方法。
- 因为后面配置了变量和路径有关,方便起见我参考了网上的安装路径。我在usr/ 下新建了一个Java文件夹来存放。接着官网下载jdk;
wget https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
- 接着解压jdk包;
tar -zxvf jdk-8u191-linux-x64.tar.gz
如果解压成功会得到jdk的文件夹。但是我到这里报错了
后来看了下文件大小才发现下载的压缩包有问题,怎么可能只有8k?
无奈,只能先下载到本地,再上传到虚拟机;重新查看文件大小
183M!这下应该对了吧。。再重新解压出来即可
- 接下来配置一下环境变量,编辑 /etc/profile文件;
vim /etc/profile
打开后是这样子的:
我们“键▼”或者“键PageDown”拉到文件最底部,使用“键i”进入插入编辑模式,在最后面加上三句话,添加的三句话网上也大同小异,但是第一句应该都是一样的,就是指明你的jdk安装路径。我的是在/usr/java/ 下的 jdk1.8.0_191文件夹。
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
修改完使用“键Esc”,输入“:wq”保存并退出。
接着输入source /etc/profile使环境变量生效
检查环境是否配置成功,成功如下:
- 至此,我以为可以启动tomcat并通过IP+端口访问了。。没想到还是访问不了!心痛…又去百度找原因,原来是防火墙的和端口的原因,首先查看一下防火墙的状态;
方法1 firewall-cmd --state
方法2 sudo systemctl status firewalld
如果看到是running的话说明开着,如果是not running或者dead说明关闭了。这里写得很详细了,参考防火墙命令。
查看防火墙打开的端口
[root@lzy bin]# firewall-cmd --zone=public --list-ports
8080/tcp
我本来是没有的,这是添加上才有的,没有可以添加一个端口
[root@lzy bin]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
之后重启一下防火墙。1.如果不启用防火墙,只要在服务器控制台添加一个8080端口就可以了;2.如果启用了防火墙,就还要执行上面的步骤在防火墙打开一个8080端口,所以我还在服务器控制台添加8080端口
重启服务器,重启tomcat,再次使用IP+端口发现终于可以访问了!如果还不行,允许外网访问8080端口
[root@lzy bin]# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
至此,终于完成tomcat的外网访问了,只要把javaweb项目放进去就可以看到了。
部署项目war包
这一步很简单,像在本地机器一样部署就可以了,把war包上传到tomcat的webapps目录下,再重新启动tomcat;使用IP:端口/war包名字即可访问
安装数据库
如果没有数据库的话可以省略我这一步,我这里有就顺便装一下,并把sql文件导进去。
- 我在tomcat的父级目录新建一个mysql文件夹存放数据库的压缩包和sql文件,进入mysql目录下下载,现在官网已经有8.0版本的数据库了,但是我没用过,所以先下了5.7的使用,复制下载链接
mysql安装这里也有其他方法安装,可以参考
(1).Centos6.4下Yum命令安装Mysql数据库及配置
(2).CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
(3).MySQL安装之yum安装
[root@lzy bin]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-5.7.24-1.el7.src.rpm
安装mysql
[root@lzy bin]# rpm -ivh mysql-community-5.7.24-1.el7.src.rpm
安装服务端
[root@lzy bin]# yum -y install mysql-server
-
安装完检查一下 mysql -V 如下说明成功
-
启动mysql重置密码
关闭
service mysqld stop
启动
service mysqld start
使用 mysql -u root -p 进入数据库发现报错(我这里重置了不报错截不了图)需要重置密码;如下重置密码:
alter user 'root'@'localhost' identified by "Sql.123456";
如果没改过配置文件,密码要求有大小写字母、符号和数字才能通过。最后刷新权限flush privileges,用新密码登录。
-
登录成功使用**show databases;**查看数据库
-
导入数据库,首先把自己的sql文件上传,我上传到了上面说的mysql文件夹下。
进入数据库创建一个跟你的sql文件同名的数据库
create database petmanagement;
打开这个数据库使用
use petmanagement;
设置编码格式
set names utf8;
最后导入sql文件,source 后面跟你的sql文件路径
source /root/mysql/petmanagement.sql
如图导图成功
- 最后使用ip+端口/项目名 就可以成功访问你的东西了,并且有后台数据的
- 最后我发现包含中文关键字搜索不出来,而且修改后文字变“????”,原来是数据库编码有点问题,使用show variables like ‘%character%’;查看编码。
看到 character_set_server这一句的编码是latin1,服务端编码是拉丁???赶紧改过来。退出mysql,修改配置文件vim /etc/my.cnf
在[mysqld]的下面加上一句character-set-server=utf8
保存退出,重启mysql service mysqld restart - 重新登录mysql查看show variables like ‘%character%’;
发现已经改成utf8,这就没问题了。
总结
这是我第一次写博客,有些操作也是第一次使用,难免会有错误和不对的地方,欢迎指出批评,欢迎评论提问。
参考文章
centos7+tomcat部署JavaWeb项目超详细步骤
CentOS7 防火墙(firewall)的操作命令