最近在做Springboot打包和环境部署工作,网上更多是打jar包的方式,搜索了很久,没有一个合理的过程和步骤,这里我具体写一下,共享大家!
环境
系统:centos7 64位
安装jdk,Tomcat,mysql
第一步:下载jdk
method one:
方法一:
这里注意,oracle有点啰嗦,非要你先注册或者要先登陆,所以要先登陆后,再执行后面
2. 下载安装包到本地,再上传到服务器
3. 根据系统选择相应版本,服务器是centos7 64位的,所以选择下载linux x64的安装包
4. 下载好后,在自己的windows下下载一个xftp5或者filezila,该软件负责在windows下以图形化界面方便上传在centos服务器里面
method two:
这个方法会快点,因为从官网下到本地的话还要通过xftp传到服务器上,外网下的比较慢,该方法可以直接在centos下直接下载,速度可观。注意要同意协议
- 首先复制安装包的下载路径,下载在usr/java目录下
2. 执行wget命令(如果发现没有wget这个命令就搜百度怎么在centos下下载wget安装包)
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;" https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html(这个http是你的jdk版本的路径),我这里写的不一定正确,后面版本链接会变化,按照你想要的链接即可
3. 下载好了之后,要解压到目录(自定义命名如jdk1.8.0)下
使用命令tar -zxvf jdk-8u161-linux-x64.tar.gz
4. 这个时候要配置环境变量
打开系统环境变量配置文件:/etc/profile是profile这个文件
然后vim /etc/profile
在profile文件尾部加上如下内容:
## JAVA
JAVA_HOME=/usr/java/jdk1.8.0_161(主要是这一步的路径下面都是根据这个路径识别)
JRE_HOME=/usr/java/jdk1.8.0_161/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
然后:wq退出,执行source /etc/profile,就可以了
5. 测试是否环境变量配置成功
查看jdk版本信息: java –version
重点来了:如果本地已经有了默认的jdk 会报冲突
解决方案(在root下)
- 查询JDK版本
[chenxin@mini01 ~]$ java -version
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-i386)
OpenJDK Client VM (build 23.2-b09, mixed mode)
系统有时候会默认使用OpenJDK版本,需要卸载后,重新安装自己需要的JDK版本
2. 查询OpenJDK,发现有两个openJDK版本
[root@mini01 chenxin]# rpm -qa|grep java
tzdata-java-2012j-1.el6.noarch
java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.i686
java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.i686
3. 删除openJDK版本
rpm -e --nodeps (后面跟上所有java的版本)
4、再次查询OpenJDK,openJDK已删除
rpm -qa|grep java
5. 配置好环境变量,如果配置好了就刷新下source /etc/profile
6. 再看版本 java –version 已经成功
第二步:下载Tomcat
和jdk类似也是有两种方法,一种是本地下Tomcat后通过xftp传centos服务器上,另一种就是通过centos直接命令行下载这里讲第二种方法
- 进入Tomcat官网,然后复制对应版本的链接
2. 在/root/目录下开始下载输入命令:
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.30/bin/apache-tomcat-8.5.30.tar.gz
后面的地址是你版本的地址,这里举个例子,根据最新的你需要的版本来
3. 解压在/home目录下
即可
第三步:下载mysql
我在我的usr下的新建一个文件夹叫做mysql-package
- 安装YUM Repo
由于centos的yum源中没有mysql,需要到mysql官网下载yum repo的配置文件
命令wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2. 然后进行repo的安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
这两个文件后面会用到的
3. 安装mysql 使用yum命令完成安装
yum install mysql-server
4. 启动mysql
然后配置mysql,需要获取临时密码才能进行下一步的修改密码
(补充:如果没有的话,就要
- 删除原来安装过的mysql残留的数据
rm -rf /var/lib/mysql
2. 再启动mysql
systemctl start mysqld #启动MySQL)
5. 登陆
登录成功后修改密码:
set password=password("yourpassword");
如果发现/var/log/mysqld.log为空,你获取临时密码不存在,所以你需要去vim /etc/my.cnf
然后在【msyqld】下加上skip-grant-tables,即跳过密码,所以mysql -uroot -p 只要回车就可以进入,然后flush privileges; 再设置下密码set password for root@localhost = password('你的密码');即可
出来把刚刚skip那段注释掉,重启下mysql服务就可以了;
设置安全选项:
在centos命令下执行mysql_secure_installation,这事必须要干的
是否修改密码,y 回车
#是否删除匿名用户,生产环境建议删除,所以直接回车
配置默认编码为utf8
vi /etc/my.cnf
#添加
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
配置成功!!
配置防火墙(端口为8080)
修改Linux网关(不修改不能访问)
在CentOS 7中引入了一个更强大的防火墙——Firewall。我们需要在Firewall中开启8081端口,也就是将8081端口加入到zone(Firewall的新特性,简单讲它的作用就是定义了网络区域网络连接的可信等级)中。
如果你的系统上没有安装使用命令安装
安装firewalld 防火墙yum install firewalld
开启服务systemctl start firewalld.service
其他命令:
关闭防火墙systemctl stop firewalld.service
开机自动启动systemctl enable firewalld.service
关闭开机制动启动systemctl disable firewalld.service
首先查看状态firewall-cmd --state //running 表示运行
查看当前防火墙有哪些端口已开
firewall-cmd --zone=public --list-ports 因为我这已经配过了,一开始一定是空的
firewall-cmd --permanent --zone=public --add-port=8080/tcp 永久开启8080端口
这样就成功的将8080端口加入了public区域中,permanent参数表示永久生效,即重启也不会失效,最后不要忘记更新防火墙规则:
firewall-cmd --reload
我这里也把80打开
firewall-cmd --zone=public --permanent --add-port=80/tcp
最后我把http也加进去
firewall-cmd --permanent --zone=public --add-service=http
注意:你要开启什么服务或者端口,一定要把防火墙重启下
firewall-cmd --reload 才生效
最后我们查询服务的启动状态
firewall-cmd --query-service ftp //查ftp
firewall-cmd --query-service ssh //查ssh
firewall-cmd --query-service http //查http
部署springboot的war包
打成war包的话应该首先放在webapps下
然后在Tomcat中
/home/apache-tomcat-8.5.39/bin这个目录下,命令:
./catalina.sh run命令执行启动命令如果启动后关闭则用./catalina.sh stop命令关闭程序
但是会发信息这个控制台关闭的时候这个就关闭了还是老方法使用守护进程nohup在当前目录下执行命令:
nohup ./catalina.sh run&如果想要结束就直接stop就可以了
Stop的时间是5s后
如果想看生成日志文件,nohup ./catalina.sh run >xx.log &
但是我们的项目的路径却是http:xx.xx.xx.xx/包名文件夹/入口
如何能够直接ip+入口访问?
这时候我们就要在server.xml下进行添加一些东西了看图
<Context docBase="/var/lib/tomcat8/webapps/打包后生成的文件夹" path="" reloadable="true" crossContext="true"/>
其中,docBase指向解压之后的项目目录的绝对路径,path为空即可
如果发现war包有问题就要在nohup.out文件看看报错的日志信息
以上都是打war包的方式,jar包方式一大堆,网上可搜到,这里不再赘述啦,有不明白的可以留言,我看到会立刻回复!!!