服務器環境準備
?論?的寶塔還是?動命令?,本機還是遠程,需要提供的軟件服務有:
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的配置是為了處理跨域。
期間如果遇到特殊問題環境評論區中討論。