一直都是在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的部署方案,静静等待部署。
部署完成后如下图
至此宝塔面板已经配置完成。
卸载自带的jdk 安装jdk8
Centos7默认安装的openjdk,而平时使用的是Oracle的JDK,所以就需要将原来自带的JDK卸载。
查看系统是否带有JDK
1 | java -version |
卸载已安装的JDK
1 | rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 |
验证一下是还有jdk
1 | rpm -qa|grep java |
没有内容证明已经卸载干净了
安装Oracle的JDK
Oracle官网下载JDK下载地址登录宝塔面板,在usr文件夹底下创建目录java文件夹,将下载的JDK上传到java文件夹中,然后进行解压。
解压完成后进行环境的配置。打开etc文件夹中的"profile"文件,进行环境变量的配置
(此步骤是通过宝塔面板中操作完成)
1 | export JAVA_HOME=/usr/java/jdk1.8.0_60 |
以上内容放到profile文件最后面
让配置好的环境变量生效
1 | source /etc/profile |
生效成功好输入 java -version 验证环境变量配置是否成功。
Centos7安装MySQL
MySQL的安装推荐使用宝塔面板工具进行安装
宝塔面板登录成功后,点击软件商店,寻找MySQL数据库,进行安装
稍等片刻后会MySQL就安装成功了,还有一种方式是通过命令进行安装,CentOS7安装MySQL,
MySQL安装完成后的密码是随机的,必须修改密码之后才能操作数据库,点击宝塔面板的数据库进行密码的修改,密码修改完成后为了操作方便,选择使用navicat进行链接,就需要开启MySQL的远程访问。
使用命令进入数据库
1 |
|
开启远程访问限制(注意:下面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 |
☝
以上工作做完后,通过navicat进行链接就行了
运行SpringBoot项目部署
CentOS7上可以运行war包和jar包,此处只写jar包的部署方式在/www/web/目录底下新建"java"文件夹,将打包好的项目进行上传,我选择存放在"/www/web/java"下
>>>>>>(此步骤是在宝塔面板中操作完成)
通过宝塔面板进入到服务文件目录
路径:/etc/systemd/system/
新建一个文件 xxx.service, xxx建议设置为你项目的名称。
我新建的文件为 im.service
新建成功后进行编辑添加内容
1 | [Unit] |
需要修改的部分为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后就可以了。