CentOs7部署JAVA程序


一直都是在Windows系统上部署JAVA的程序,还未曾在Linux上部署过JAVA程序,就想尝试一次,由于是第一次部署,想记录一下全过程,所以文章有些冗长
有些详细操作过程需要读者自己去参照相关文档,有些文档链接也会给出
会尽量减少文字描述,提炼经典的内容,部署过程也是通过网络查询,文章内会给出参考的连接,如有不对的地方还望指正,准备好了咱就开始吧

准备工作

我选择的是CentOs7系统,这个测试过程是虚拟机上进行的,为了节省篇幅,如何在VMware安装CentosOS7系统的安装可以参考这篇文章VMware安装最新版CentOS7图文教程

Centos7安装宝塔面板

宝塔Linux官网
使用Xshell 6连接CentOs7系统,连接成功后进行以下操作
Linux面板6.0安装命令(暂时仅兼容Centos7.x,其它系统版本请安装5.9稳定版)

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

Linux面板6.0升级专业版:

1
curl http://download.bt.cn/install/update6.sh|bash

稍等一会,等待升级
初次访问需要安装nginx时间可能会久一点。
在页面中会出现访问地址、账户和密码,如何选择的是阿里云或者腾讯云服务器的话需要去云服务器中,在防火墙中将8888端口加入到规则中,否则会出现无法访问
将网址复制到浏览器中进行登录,登录成功后,选择Nginx的部署方案,静静等待部署。
hexo_03.jpg
部署完成后如下图
deploy00.jpg
至此宝塔面板已经配置完成。

卸载自带的jdk 安装jdk8

以下步骤通过在Xshell工具进行操作完成
Centos7默认安装的openjdk,而平时使用的是Oracle的JDK,所以就需要将原来自带的JDK卸载。

查看系统是否带有JDK

1
java -version

卸载已安装的JDK

1
2
3
4
5
6
7
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64

验证一下是还有jdk

1
2
3
rpm -qa|grep java

java -version

没有内容证明已经卸载干净了

安装Oracle的JDK

Oracle官网下载JDK下载地址
登录宝塔面板,在usr文件夹底下创建目录java文件夹,将下载的JDK上传到java文件夹中,然后进行解压。 解压完成后进行环境的配置。打开etc文件夹中的"profile"文件,进行环境变量的配置(此步骤是通过宝塔面板中操作完成)

1
2
3
export JAVA_HOME=/usr/java/jdk1.8.0_60
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

(此步骤通过在Xshell工具进行操作完成)
以上内容放到profile文件最后面
让配置好的环境变量生效

1
source /etc/profile

(此步骤通过在Xshell工具进行操作完成)
生效成功好输入 java -version 验证环境变量配置是否成功。

Centos7安装MySQL

MySQL的安装推荐使用宝塔面板工具进行安装
宝塔面板登录成功后,点击软件商店,寻找MySQL数据库,进行安装
稍等片刻后会MySQL就安装成功了,还有一种方式是通过命令进行安装,CentOS7安装MySQL
MySQL安装完成后的密码是随机的,必须修改密码之后才能操作数据库,点击宝塔面板的数据库进行密码的修改,密码修改完成后为了操作方便,选择使用navicat进行链接,就需要开启MySQL的远程访问。
使用命令进入数据库

1
2

mysql -uroot -p

开启远程访问限制(注意:下面IP地址指定链接的IP,如要开启所有的,用%代替IP)

1
grant all privileges on *.* to 'root'@'IP地址' identified by '数据库密码' with grant option;

生效

1
flush privileges;

退出

1
exit

远程访问开启后,需要开启3306的端口才会链接成功,点击宝塔面板中的安全,查看防火墙一栏中3306端口是否出去放行状态,如果是则不用执行以下命令,反之使用命令开放33006端口

1
firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新载入

1
firewall-cmd --reload

(以上骤通过在Xshell工具进行操作完成)
以上工作做完后,通过navicat进行链接就行了

运行SpringBoot项目部署

CentOS7上可以运行war包和jar包,此处只写jar包的部署方式
在/www/web/目录底下新建"java"文件夹,将打包好的项目进行上传,我选择存放在"/www/web/java"下>>>>>>(此步骤是在宝塔面板中操作完成)
通过宝塔面板进入到服务文件目录

路径:/etc/systemd/system/
新建一个文件 xxx.service, xxx建议设置为你项目的名称。
我新建的文件为 im.service
新建成功后进行编辑添加内容

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]  
Description=im.service
After=syslog.target
[Service]


ExecStart=/usr/java/jdk1.8.0_60/bin/java -jar /www/web/java/im.jar

ExecStop=/bin/kill -15 $MAINPID


[Install]
WantedBy=multi-user.target

需要修改的部分为Description和ExecStart
Description 为开启服务的名称
ExecStart的前一部分代表jdk的安装的bin目录 ,后一部分代表你的jar包存放的位置,其他的固定
设置完成后还需要开启相关的端口

1
firewall-cmd --zone=public --add-port=8080/tcp --permanent

重启生效

1
firewall-cmd --reload

以下命令为项目的开启
注册为开机启动

1
systemctl enable im

开启项目

1
systemctl start im

查看项目启动的状态

1
systemctl status im

查看项目的日志

1
journalctl -u im or journalctl -u im.service

停止项目

1
systemctl stop im

取消开机启动的service

1
systemctl disable im

域名映射IP地址和端口

服务部署成功后,项目通过IP地址和端口可以进行访问,但是正式部署的时候是不会讲IP和断开暴露出来,都是通过域名进行访问的,但是如果项目的端口非80端口的话,就需要使用反向代理来进行解决了。
推荐使用Nginx,以下是我自己域名映射IP和端口的过程
使用的是宝塔控制面板,
步骤为:点击网站>>>进行站点的添加>>>值填写域名、备注、根目录>>>其中根目录选择jar包所在的路径,进行创建。
创建完成后,点击创建的网站名称,打开后如图

点击配置文件主要修改server_name、root,这两个后面的值

server_name:域名,可以为多个
root:jar运行包所在的文件夹路径
修改完成后点击保存
随后点击反向代理进行添加,填写代理名称和目标的URl(目标的URl:指的是服务器的IP地址+端口),其他的不用修改,点击保存。

以上内容填写完成后,重启Nginx后就可以了。

-------------本文结束感谢您的阅读-------------