114 lines
3.2 KiB
Bash
114 lines
3.2 KiB
Bash
#!/bin/bash
|
|
|
|
# 甘草 API 修复部署脚本
|
|
# 使用方法: ./deploy_gancao_fix.sh [server_user@server_ip] [project_path]
|
|
|
|
set -e
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}=== 甘草 API 修复部署脚本 ===${NC}\n"
|
|
|
|
# 检查参数
|
|
if [ $# -lt 2 ]; then
|
|
echo -e "${RED}错误:缺少参数${NC}"
|
|
echo "使用方法: $0 [server_user@server_ip] [project_path]"
|
|
echo "示例: $0 root@192.168.1.100 /www/wwwroot/your-project"
|
|
exit 1
|
|
fi
|
|
|
|
SERVER=$1
|
|
PROJECT_PATH=$2
|
|
|
|
echo -e "${YELLOW}服务器:${NC}$SERVER"
|
|
echo -e "${YELLOW}项目路径:${NC}$PROJECT_PATH\n"
|
|
|
|
# 确认
|
|
read -p "确认部署到以上服务器?(y/n) " -n 1 -r
|
|
echo
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "已取消"
|
|
exit 0
|
|
fi
|
|
|
|
echo -e "\n${GREEN}步骤 1: 上传修复文件${NC}"
|
|
|
|
# 上传 PHP 文件
|
|
echo "上传 GancaoScmRecipelService.php..."
|
|
scp server/app/common/service/gancao/GancaoScmRecipelService.php \
|
|
$SERVER:$PROJECT_PATH/server/app/common/service/gancao/
|
|
|
|
echo "上传 GancaoOpenApiTransport.php..."
|
|
scp server/app/common/service/gancao/GancaoOpenApiTransport.php \
|
|
$SERVER:$PROJECT_PATH/server/app/common/service/gancao/
|
|
|
|
echo "上传 PrescriptionOrderLogic.php..."
|
|
scp server/app/adminapi/logic/tcm/PrescriptionOrderLogic.php \
|
|
$SERVER:$PROJECT_PATH/server/app/adminapi/logic/tcm/
|
|
|
|
echo "上传 PrescriptionOrderController.php..."
|
|
scp server/app/adminapi/controller/tcm/PrescriptionOrderController.php \
|
|
$SERVER:$PROJECT_PATH/server/app/adminapi/controller/tcm/
|
|
|
|
# 上传测试脚本
|
|
echo "上传测试脚本..."
|
|
scp test_gancao_config.php $SERVER:$PROJECT_PATH/
|
|
scp test_gancao_ssl.php $SERVER:$PROJECT_PATH/
|
|
scp diagnose_gancao_payload.php $SERVER:$PROJECT_PATH/
|
|
|
|
echo -e "${GREEN}✓ 文件上传完成${NC}\n"
|
|
|
|
echo -e "${GREEN}步骤 2: 在服务器上执行操作${NC}"
|
|
|
|
ssh $SERVER << EOF
|
|
set -e
|
|
cd $PROJECT_PATH
|
|
|
|
echo "检查文件..."
|
|
ls -la server/app/common/service/gancao/GancaoScmRecipelService.php
|
|
ls -la server/app/common/service/gancao/GancaoOpenApiTransport.php
|
|
|
|
echo ""
|
|
echo "清除缓存..."
|
|
cd server
|
|
php think clear || true
|
|
rm -rf runtime/cache/* || true
|
|
rm -rf runtime/temp/* || true
|
|
cd ..
|
|
|
|
echo ""
|
|
echo "运行配置检查..."
|
|
php test_gancao_config.php || true
|
|
|
|
echo ""
|
|
echo "运行 SSL 测试..."
|
|
php test_gancao_ssl.php || true
|
|
|
|
echo ""
|
|
echo "重启服务..."
|
|
sudo systemctl restart php-fpm || sudo systemctl restart php7.4-fpm || sudo systemctl restart php8.0-fpm || sudo systemctl restart php8.1-fpm || true
|
|
sudo systemctl restart nginx || true
|
|
|
|
echo ""
|
|
echo "部署完成!"
|
|
EOF
|
|
|
|
echo -e "\n${GREEN}=== 部署完成 ===${NC}\n"
|
|
|
|
echo -e "${YELLOW}下一步:${NC}"
|
|
echo "1. 查看日志:"
|
|
echo " ssh $SERVER 'tail -f $PROJECT_PATH/server/runtime/log/\$(date +%Y%m%d).log | grep -i gancao'"
|
|
echo ""
|
|
echo "2. 测试接口:"
|
|
echo " curl -X POST https://your-domain.com/api/tcm.prescriptionOrder/submitGancaoRecipel \\"
|
|
echo " -H 'Content-Type: application/json' \\"
|
|
echo " -H 'token: your_token' \\"
|
|
echo " -d '{\"id\": 订单ID}'"
|
|
echo ""
|
|
echo "3. 如果仍有问题,查看详细文档:"
|
|
echo " cat GANCAO_FINAL_FIX.md"
|