第五期
目标
1.安装JDK
- Linux上一般会安装Open JDK,但是实际开发中使用的一般都是JDK,所以要先卸载
如何卸载可以自行百度,(#.#) - JDK下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
现在下载低于1.8版本的jdk需要登录,亲测可用,账号2696671285@qq.com ,密码Oracle123
坑来也:
一定要注意你主机的架构是x86还是arm,不要下错版本啦 - 创建新目录
mkdir /usr/local/java
- 将压缩包上传至新目录,解压
tar -zxvf jdk-8u241-linux-arm64-vfp-hflt.tar.gz
- 删除压缩包
rm -f jdk-8u241-linux-arm64-vfp-hflt.tar.gz
- 配置JDK环境变量:
在最后一行插入
#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
这里有看到文档提示说最好是去/etc/profile.d/下新建一个.sh脚本用来配置java环境变量
- 检查是否安装成功
source /etc/profile
让刚刚设置的环境变量生效
java -version
2.安装OpenJDK
- 查找安装源中有什么版本
yum search java | grep -i --color JDK
- 此处只需要安装jdk1.8,所以安装包命令如下
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel #安装openjdk
- 配置环境变量
默认安装位置:/usr/lib/jvm/ - ubantu或Kylin安装openJDK:
apt install openjdk-8-jdk-headless
3.安装maven,配置阿里源
- 进入https://maven.apache.org/download.cgi下载maven
cd /usr/local
创建maven文件夹- 将下载好的maven压缩包上传至此
tar -zxvf apache-maven-3.6.3-bin.tar.gz
rm -f apache-maven-3.6.3-bin.tar.gz
- 和java一样,去/etc/profile.d下创建maven.sh文件,并修改内容为:
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
- 重启配置
source /etc/profile
mvn -v
- 配置阿里云镜像
在maven安装目录中的conf中修改setting.xml
新增配置内容就可以了
<!-- 阿里镜像仓库 -->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>
http://maven.aliyun.com/nexus/content/groups/public/
</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
成功,(^-^)V
ubantu和kylin步骤一致
4.了解maven的生命周期和工作流程
自己看,O(∩_∩)O哈哈~
5.注册github,下载tale程序
直接去github注册一个账号,基本都有,就略过啦
搜索tale,进入tale
按照说明快速开始
- 在/usr/local下新建tale文件夹,输入
wget -qO- git.io/fxsWx | bash
准备下载 - 结果半天没反应
- 按照提示参考了install.sh后直接copy了一份运行,结果报错说找不到
- 看来可能是地址错了,根据install.sh中提供的信息,进入他的release页面
- 手动下载吧,要记得用迅雷,默认下载太慢了o(╥﹏╥)o
- 下载完成后
tar -zxvf tale.tar.gz
- 赋权
chmod +x ./tool
./tool start
- 然后访问浏览器的 http://[你的主机]:9000 即可安装。
5. 通过maven命令行对tale博客程序进行打包
在/usr/local下新建tale-dev目录
- 安装git
yum install -y git
或apt-get install git
- 进入tale-dev目录
运行git clone -b develop https://github.com/otale/tale.git
- 下载完成后进入下载后的tale目录
tale 使用maven命令进行打包,但在打包前你需要确认一个配置。
application.properties 配置文件中的 application.devMode 项需要设置为 false,因为打包后不属于开发环境。
然后使用命令:mvn clean package -Pprod -Dmaven.test.skip=true 在你的项目根目录下执行。
打包后生成在 target/dist 这个文件夹里,tale 这个目录整体就是打包的结果。 - 在dist目录下运行
./tool start
即可跑启服务,成功(^-^)V
6.编写运行tale的shell脚本
可以先尝试自己编写
start: 启动 tale
stop: 停止 tale
restart: 重启 tale
status: 查看 tale 运行状态
log: 查看 tale 运行日志
upgrade: 升级 tale,会自动备份这些命令
在 tale 根目录下有一个名为 tool 的文件,该文件为帮助脚本。
#!/bin/sh
APP_NAME="tale"
JAVA_OPTS="-Xms256m -Xmx256m -Dfile.encoding=UTF-8"
psid=0
checkpid() {
javaps=$(pgrep -f "tale-latest")
if [ -n "$javaps" ]; then
psid=$javaps
else
psid=0
fi
}
start() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "warn: $APP_NAME already started! (pid=$psid)"
echo "================================"
else
echo "Starting $APP_NAME ..."
nohup java $JAVA_OPTS -jar tale-latest.jar --app.env=prod >/dev/null 2>&1 &
sleep 1
checkpid
if [ $psid -ne 0 ]; then
echo "(pid=$psid) [OK]"
else
echo "[Failed]"
fi
fi
}
stop() {
checkpid
if [ $psid -ne 0 ]; then
echo -n "Stopping $APP_NAME ...(pid=$psid) "
kill -9 $psid
if [ $? -eq 0 ]; then
echo "[OK]"
else
echo "[Failed]"
fi
checkpid
if [ $psid -ne 0 ]; then
stop
fi
else
echo "================================"
echo "warn: $APP_NAME is not running"
echo "================================"
fi
}
status() {
checkpid
if [ $psid -ne 0 ]; then
echo "$APP_NAME is running! (pid=$psid)"
else
echo "$APP_NAME is not running"
fi
}
showlog() {
tail -f logs/tale.log
}
get_latest_release() {
curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api
grep '"tag_name":' | # Get tag line
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}
REMOVE_LOCAL_THEME=1
upgrade(){
echo "是否允许覆盖本地主题 (y/n)?"
read con
case $con in
y|yes|Y|YES)
REMOVE_THEME=1
;;
*)
break
;;
esac
# 备份当前目录
TIME=`date +%Y%m%d_%H%m`
tar czvf back_$TIME.tar.gz *
echo '备份成功'
echo '开始下载最新版本.'
TAG_VERSION=$(get_latest_release "otale/tale")
wget -N --no-check-certificate https://github.com/otale/tale/releases/download/$TAG_VERSION/tale.tar.gz
mkdir upgrade_tmp
tar -zxvf $APP_NAME.tar.gz -C upgrade_tmp
sh tool stop
rm -rf lib tale-latest.jar tool resources/static resources/templates/admin resources/templates/comm resources/templates/*.html resources/*.properties
if [ "$REMOVE_LOCAL_THEME" -eq "1" ]; then
rm -rf resources/templates/themes
mv upgrade_tmp/resources/templates/themes resources/templates
fi
mv upgrade_tmp/lib .
mv upgrade_tmp/tale-latest.jar .
mv upgrade_tmp/tool .
chmod +x tool
mv upgrade_tmp/resources/static ./resources
mv upgrade_tmp/resources/*.properties ./resources
mv upgrade_tmp/resources/templates/admin ./resources/templates
mv upgrade_tmp/resources/templates/comm ./resources/templates
mv upgrade_tmp/resources/templates/*.html ./resources/templates
echo '升级完毕, 请执行 sh tool restart 重启博客系统!'
rm -rf upgrade_tmp
rm -rf tale.tar.gz
}
case "$1" in
'start')
start
;;
'stop')
stop
;;
'restart')
stop
start
;;
'status')
status
;;
'log')
showlog
;;
'upgrade')
upgrade
;;
*)
echo "Usage: $0 {start | stop | restart | status | upgrade | log}"
exit 1
esac
exit 0
7.编写shell脚本程序监控tale的运行
- 编写脚本,通过监听9000端口来判断是否关闭
#! /bin/sh
while [ 1==1 ]
do
state=`netstat -lnetp | grep 9000 | awk '{print $6}'`
echo "$state";
if [ "$state" == "" ]
then `
cd /usr/local/tale`;
./tool start;
fi
sleep 1
done
- 运行脚本即可
8.通过nginx把tale对外进行访问
在nginx配置中增加一段即可
location /{
proxy_pass http://uat001.chenpengan.top:9000/;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
9.把上次购买的域名备案(选做)
10.把上次做的内容发布到自己的博客上
正好自己用用,哈哈哈
11.安装switchhosts,按照RC,DEV,PROD管理自己的域名
不再额外写了