205 lines
4.8 KiB
Bash
205 lines
4.8 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# ========================================
|
|||
|
|
# 远程服务器配置部署脚本
|
|||
|
|
# 用途: 更新application.yml配置并重启服务
|
|||
|
|
# ========================================
|
|||
|
|
|
|||
|
|
APP_DIR=/www/wwwroot/px.ddn-ai.cloud/jar
|
|||
|
|
CONFIG_FILE=$APP_DIR/application.yml
|
|||
|
|
|
|||
|
|
echo "========================================"
|
|||
|
|
echo "远程服务器配置部署"
|
|||
|
|
echo "========================================"
|
|||
|
|
|
|||
|
|
# 1. 备份旧配置
|
|||
|
|
if [ -f "$CONFIG_FILE" ]; then
|
|||
|
|
echo "备份旧配置..."
|
|||
|
|
cp $CONFIG_FILE $CONFIG_FILE.backup.$(date +%Y%m%d_%H%M%S)
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 2. 创建新配置
|
|||
|
|
echo "创建新配置文件..."
|
|||
|
|
cat > $CONFIG_FILE << 'EOF'
|
|||
|
|
# ========================================
|
|||
|
|
# 陪读服务后端配置 - 生产环境
|
|||
|
|
# ========================================
|
|||
|
|
|
|||
|
|
server:
|
|||
|
|
port: 8089
|
|||
|
|
servlet:
|
|||
|
|
context-path: /
|
|||
|
|
tomcat:
|
|||
|
|
uri-encoding: UTF-8
|
|||
|
|
|
|||
|
|
spring:
|
|||
|
|
application:
|
|||
|
|
name: peidu-backend
|
|||
|
|
|
|||
|
|
profiles:
|
|||
|
|
active: prod
|
|||
|
|
|
|||
|
|
mvc:
|
|||
|
|
pathmatch:
|
|||
|
|
matching-strategy: ant_path_matcher
|
|||
|
|
|
|||
|
|
servlet:
|
|||
|
|
multipart:
|
|||
|
|
max-file-size: 10MB
|
|||
|
|
max-request-size: 10MB
|
|||
|
|
|
|||
|
|
jackson:
|
|||
|
|
date-format: yyyy-MM-dd HH:mm:ss
|
|||
|
|
time-zone: GMT+8
|
|||
|
|
|
|||
|
|
http:
|
|||
|
|
encoding:
|
|||
|
|
charset: UTF-8
|
|||
|
|
enabled: true
|
|||
|
|
force: true
|
|||
|
|
|
|||
|
|
datasource:
|
|||
|
|
url: ${SPRING_DATASOURCE_URL}
|
|||
|
|
username: ${DB_USERNAME}
|
|||
|
|
password: ${DB_PASSWORD}
|
|||
|
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
|||
|
|
hikari:
|
|||
|
|
minimum-idle: 5
|
|||
|
|
maximum-pool-size: 20
|
|||
|
|
connection-timeout: 30000
|
|||
|
|
idle-timeout: 600000
|
|||
|
|
max-lifetime: 1800000
|
|||
|
|
|
|||
|
|
mybatis-plus:
|
|||
|
|
mapper-locations: classpath*:/mapper/**/*.xml
|
|||
|
|
type-aliases-package: com.peidu.entity
|
|||
|
|
configuration:
|
|||
|
|
map-underscore-to-camel-case: true
|
|||
|
|
cache-enabled: false
|
|||
|
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
|||
|
|
global-config:
|
|||
|
|
db-config:
|
|||
|
|
id-type: auto
|
|||
|
|
logic-delete-field: deleted
|
|||
|
|
logic-delete-value: 1
|
|||
|
|
logic-not-delete-value: 0
|
|||
|
|
|
|||
|
|
logging:
|
|||
|
|
level:
|
|||
|
|
com.peidu: info
|
|||
|
|
root: info
|
|||
|
|
pattern:
|
|||
|
|
console: '%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n'
|
|||
|
|
file:
|
|||
|
|
name: /www/wwwroot/px.ddn-ai.cloud/jar/logs/app.log
|
|||
|
|
|
|||
|
|
# ========================================
|
|||
|
|
# 文件上传配置 (关键配置)
|
|||
|
|
# ========================================
|
|||
|
|
file:
|
|||
|
|
upload:
|
|||
|
|
mode: local
|
|||
|
|
local-path: /www/wwwroot/px.ddn-ai.cloud/Image/
|
|||
|
|
url-prefix: https://px.ddn-ai.cloud/uploads/
|
|||
|
|
allowed-types: jpg,jpeg,png,gif,bmp,webp,pdf,doc,docx,xls,xlsx
|
|||
|
|
max-size: 10
|
|||
|
|
|
|||
|
|
jwt:
|
|||
|
|
secret: ${JWT_SECRET}
|
|||
|
|
expiration: 604800
|
|||
|
|
|
|||
|
|
wx:
|
|||
|
|
appid: ${WX_APPID}
|
|||
|
|
secret: ${WX_SECRET}
|
|||
|
|
|
|||
|
|
wechat:
|
|||
|
|
pay:
|
|||
|
|
appid: ${WX_PAY_APPID}
|
|||
|
|
mchid: ${WX_PAY_MCHID}
|
|||
|
|
key: ${WX_PAY_KEY}
|
|||
|
|
cert-path: classpath:cert/apiclient_cert.p12
|
|||
|
|
notify-url: https://px.ddn-ai.cloud/api/payment/notify/wechat
|
|||
|
|
|
|||
|
|
sms:
|
|||
|
|
skip-send: false
|
|||
|
|
aliyun:
|
|||
|
|
access-key-id: ${ALIYUN_SMS_ACCESS_KEY}
|
|||
|
|
access-key-secret: ${ALIYUN_SMS_ACCESS_SECRET}
|
|||
|
|
sign-name: ${SMS_SIGN_NAME}
|
|||
|
|
template-code: ${SMS_TEMPLATE_VERIFY_CODE}
|
|||
|
|
region: cn-hangzhou
|
|||
|
|
|
|||
|
|
aliyun:
|
|||
|
|
oss:
|
|||
|
|
endpoint: ${ALIYUN_OSS_ENDPOINT:}
|
|||
|
|
access-key-id: ${ALIYUN_OSS_ACCESS_KEY:}
|
|||
|
|
access-key-secret: ${ALIYUN_OSS_ACCESS_SECRET:}
|
|||
|
|
bucket-name: ${ALIYUN_OSS_BUCKET:}
|
|||
|
|
domain: ${ALIYUN_OSS_DOMAIN:}
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
echo "✅ 配置文件创建成功: $CONFIG_FILE"
|
|||
|
|
|
|||
|
|
# 3. 确保Image目录存在
|
|||
|
|
IMAGE_DIR=/www/wwwroot/px.ddn-ai.cloud/Image
|
|||
|
|
if [ ! -d "$IMAGE_DIR" ]; then
|
|||
|
|
echo "创建图片目录..."
|
|||
|
|
mkdir -p $IMAGE_DIR
|
|||
|
|
chmod 755 $IMAGE_DIR
|
|||
|
|
echo "✅ 图片目录创建成功: $IMAGE_DIR"
|
|||
|
|
else
|
|||
|
|
echo "✅ 图片目录已存在: $IMAGE_DIR"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 4. 停止旧服务
|
|||
|
|
echo ""
|
|||
|
|
echo "停止旧服务..."
|
|||
|
|
if [ -f "$APP_DIR/app.pid" ]; then
|
|||
|
|
OLD_PID=$(cat $APP_DIR/app.pid)
|
|||
|
|
if ps -p $OLD_PID > /dev/null 2>&1; then
|
|||
|
|
kill $OLD_PID
|
|||
|
|
echo "等待服务停止..."
|
|||
|
|
sleep 3
|
|||
|
|
|
|||
|
|
# 如果还没停止,强制杀死
|
|||
|
|
if ps -p $OLD_PID > /dev/null 2>&1; then
|
|||
|
|
kill -9 $OLD_PID
|
|||
|
|
echo "强制停止服务"
|
|||
|
|
fi
|
|||
|
|
echo "✅ 旧服务已停止"
|
|||
|
|
else
|
|||
|
|
echo "旧服务已经停止"
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
echo "未找到PID文件,尝试查找进程..."
|
|||
|
|
PIDS=$(ps aux | grep peidu-backend | grep -v grep | awk '{print $2}')
|
|||
|
|
if [ ! -z "$PIDS" ]; then
|
|||
|
|
echo "找到进程: $PIDS"
|
|||
|
|
kill $PIDS
|
|||
|
|
sleep 2
|
|||
|
|
echo "✅ 旧服务已停止"
|
|||
|
|
else
|
|||
|
|
echo "未找到运行中的服务"
|
|||
|
|
fi
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 5. 启动新服务
|
|||
|
|
echo ""
|
|||
|
|
echo "启动新服务..."
|
|||
|
|
cd $APP_DIR
|
|||
|
|
bash start.sh
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "========================================"
|
|||
|
|
echo "部署完成!"
|
|||
|
|
echo "========================================"
|
|||
|
|
echo ""
|
|||
|
|
echo "查看启动日志:"
|
|||
|
|
echo " tail -f $APP_DIR/logs/app.log"
|
|||
|
|
echo ""
|
|||
|
|
echo "查看配置:"
|
|||
|
|
echo " cat $CONFIG_FILE"
|
|||
|
|
echo ""
|
|||
|
|
echo "测试上传接口:"
|
|||
|
|
echo " curl -X POST https://px.ddn-ai.cloud/api/file/upload/direct -F 'file=@test.jpg'"
|
|||
|
|
echo ""
|