服务器环境准备
⽆论⽤的宝塔还是⼿动命令⾏,本机还是远程,需要提供的软件服务有:
1. mysql 5.7
2. redis 最新版即可
3. java 1.8
java服务
jar ⽂件存储,根据⾃⼰需求来,此处仅为示例
/www/wwwroot/VueProjectHome/ 分别存放平台端,商户管理端,商城
/www/wwwroot/JavaProjectHome 分别存放Crmeb-admin.jar和Crmeb-front.jar
启动shell根据项⽬中的转移过去修改对应⽬录配置,注意设置执⾏权限
如下示例:
#!/bin/bash
#开始时间 时间戳
startTime=`date +'%Y-%m-%d %H:%M:%S'`
#接口项目站点路径(目录按照各自配置)
APP_PATH=/www/wwwroot/xxx
#APP_PATH=/Library/WebServer/Documents/zhongbang/java/crmeb/target
#jar包文件名称
APP_NAME=$APP_PATH/Crmeb-admin.jar
#日志文件名称
LOG_FILE=$APP_PATH/crmeb_out.log
#启动环境 # 如果需要配置数据和redis,请在 application-prod.yml中修改, 用jar命令修改即可
APP_YML=--spring.profiles.active=prod
#数据库配置
rm -rf $LOG_FILE
echo "开始停止 Crmeb 项目进程"
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
if [ $pid ];then
echo "pid: $pid"
kill -9 $pid
echo "Crmeb 项目进程进程终止成功"
fi
sleep 2
#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
if test -e $APP_NAME;then
echo '文件存在,开始启动此程序...'
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件 --spring.profiles.active=prod 启动 prod环境
nohup java -jar $APP_NAME $APP_YML > crmeb_out.log 2>&1 &
echo "正在发布中,请稍后......"
sleep 10s
#通过检测日志来判断
while [ -f $LOG_FILE ]
do
success=`grep "Started CrmebAdminApplication in " $LOG_FILE`
if [[ "$success" != "" ]]
then
# echo "Crmeb start ........."
break
else
# echo "Crmeb Running ......."
sleep 1s
fi
# echo "开始检测启动失败标记"
fail=`grep "Fail" $LOG_FILE`
if [[ "$fail" != "" ]]
then
echo "项目启动失败"
tail -f $LOG_FILE
break
else
# echo "Crmeb Running ......."
sleep 1s
fi
done
echo "Crmeb Started Success"
endTime=`date +'%Y-%m-%d %H:%M:%S'`
startSecond=$(date --date="$startTime" +%s);
endSecond=$(date --date="$endTime" +%s);
total=$((endSecond-startSecond))
# shellcheck disable=SC2027
echo "本次运行时间: "$total"s"
# shellcheck disable=SC2086
echo "当前时间:"$endTime
else
echo '$APP_NAME 文件不存在,请检查。'
fi
#在 $APP_NAME 同级目录下运行 ./startAdmin.sh 命令即可启动项目。
如果启动中遇到不能正常启动 如:的错误,那么根据下⾯示例配置你的环境变量,即使在配置前java -version 都能正确识别也是要配置的,请遵守,别浪费时间哦!
Could not find or load main class org.springframework.boot.loader.JarLauncher
nginx挂在前端⻚⾯后处理跨域
Vue项⽬打包注意,原来的⼦域名直接连接的⽅式是API直接配置java静态代理站点
⽐如官⽹的Vue管理端配置的是:api.admin.merchant.java.crmeb.net
若⽤ip+端⼝的⽅式访问需要配置为当前的静态站点域名或者 / 都可以 。此⽅法也适合于不⽤⼦域名的部署⽅式
let domain='http://你的ip:8891'
vue打包后的项⽬存储位置可以根据⾃⼰需求来,此处仅为示例,重要能正常读取。
仅供参考:
注意:此处的api和单独部署的稍有不同,api⽤的是前端的域名,因为对应域名做了 /api的转发,访问了服务器的java程序对应的tomcat端⼝。使⽤/api的配置是为了处理跨域。
期间如果遇到特殊问题环境评论区中讨论。
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}