首先和大家分享一个好消息,今天小编拥有了人生第一台阿里云服务器。今天来带大家在Linux服务器上部署一个SpringBoot项目。
小编安装的是CentOS7.3版本,我们可以访问https://swas.console.aliyun.com 来进入到阿里云服务器的控制台,在概述中可以看到服务器的实时运行情况,以及自己服务器的内外网ip地址。接下来我们可以直接通过点击右上角的远程连接来进入到服务器中,这里推荐使用Xshell进行服务器远程连接,因为可以使用Xftp进行文件传输。
首先要做的是对服务器Java运行环境的搭建,我们先进入到根目录下
cd /
创建java文件夹,将所有的资源都安装在这个文件夹中,
mkdir java
cd java
- 我们通过yum下载的方式安装JDK,输入命令:
yum install java-1.8.0-openjdk* -y
安装完成后,输入命令:ls ,
然后配置环境变量:
vim /etc/profile
按下i键进入编辑模式,在该文件中输入代码:
export JAVA_HOME=/java/jdk1.8.0_192
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
按下Esc键,输入:wq,保存退出。接着输入:
java -version
出现图片中的信息表明环境配置 成功。
接着我们需要安装mysql数据库。同样的使用cd java进入java目录下,输入以下命令:
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server
下载完成后需要重启mysql服务:
service mysqld restart
我们进入mysql数据库修改密码:
mysql -u root
接着输入修改密码命令:
set password for 'root'@'localhost' =password('your password');
然后通过输入 exit; 命令来退出,重新进入数据库
mysql -uroot -p
输入自己的密码,如果成功进入数据库中,表明MySQL数据库基本安装完成,但是在开发过程中,为了方便,希望通过本地的可视化工具远程连接线上的数据库,这时可以运行以下命令来开放数据库的远程连接。
grant all privileges on *.* to root@'%'identified by 'your password';
到这里jdk和mysql就已经完成了,但是我们需要在阿里云平台中对自己需要的端口进行开放,比如mysql数据库的3306端口,以及接下来部署的项目端口。点击路由中的防火墙,进入下图页面,点击添加规则按钮:
我们可以输入需要开放的端口,类型就是自定义,协议不变,端口输入需要开放的端口,点击确定即可。
我们可以去本地的navicat中试着连接以下阿里云服务器中的数据库,连接的方式就不用过多介绍。然后可以创建数据库,将本地的数据库表导入到阿里云的数据库中。此过程忽略。
接下来就剩项目部署了,在IDEA中将SpringBoot项目打成jar包,在服务器中的opt目录下创建web文件夹,用来存放jar包及项目日志。
cd /opt
mkdir web
cd web
使用Xftp或者其它工具将jar上传到服务器中,使用java -jar 运行项目,这里推荐使用后台运行的方式:
nohup java -jar blog-1.0-SNAPSHOT.jar > blog.log 2>&1&
上述命令的意思是后台运行blog jar包,同时生成blog.log日志,将异常信息和日志信息合并输出。
我们可以通过输入以下命令来查看项目运行日志:
tail -f blog.log
我们可以关闭防护墙来提高访问体验。
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl top firewalld
#开启防火墙
systemctl start firewalld
如果项目没有报错,我们就可以在浏览器中访问了,输入服务器ip:port/页面映射即可。
注意刚部署的时候访问速度可能会很慢,大概需要10-20分钟的缓存期,之后就恢复正常了。
关闭项目时我们可以通过暴力的方式进行,输入下面的命令查看java进程:
ps -ef | grep java
这个项目的进程号是:5600
然后输入命令,就可以关闭项目:
kill -9 5600
最后为大家推荐一个jar包启动脚本:
输入命令创建一个start.sh文件
vim start.sh
在文本中输入下面的代码:
#!/bin/bash
#jar包文件路径及名称(目录按照各自配置)
APP_NAME=/opt/web/blog/blog-1.0-SNAPSHOT.jar
#日志文件路径及名称(目录按照各自配置)
LOG_FILE=/opt/web/blog/blog.log
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo "$pid进程终止成功"
sleep 2
#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
if test -e $APP_NAME
then
echo '文件存在,开始启动此程序...'
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar $APP_NAME > $LOG_FILE 2>&1 &
#实时查看启动日志(此处正在想办法启动成功后退出)
tail -f $LOG_FILE
#输出启动成功(上面的查看日志没有退出,所以执行不了,可以去掉)
#echo '$APP_NAME 启动成功...'
else
echo '$APP_NAME 文件不存在,请检查。'
fi
然后赋予这个脚本权限:
#开启全部权限,也可以自己定义权限
chomd 777 start.sh
然后我们以后就可以通过运行脚本的命令来启动项目:
./start.sh
到这里一个简单的SpringBoot项目就部署完成了。扫描关注小编的公众号,今后还会有其它Java技术,敬请期待!