This commit is contained in:
freedakgmail
2025-11-24 08:11:15 +08:00
parent bec270c9af
commit b7a8c9ee6e
674 changed files with 7042 additions and 278 deletions
+106
View File
@@ -0,0 +1,106 @@
#!/bin/bash
# 重定向循环问题快速修复脚本
# 用于修复 ERR_TOO_MANY_REDIRECTS 错误
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 服务器配置
SERVER_IP="115.190.235.230"
SSH_PORT="22" # SSH连接端口
APP_PORT="8006" # 应用访问端口
SERVER_USER="root"
REMOTE_DIR="/var/www/chinese-family-tree"
echo -e "${GREEN}=== 重定向循环问题修复脚本 ===${NC}\n"
# 1. 检查当前 NEXTAUTH_URL 配置
echo -e "${YELLOW}步骤 1: 检查服务器当前配置${NC}"
echo "正在连接服务器..."
CURRENT_URL=$(ssh -p $SSH_PORT $SERVER_USER@$SERVER_IP "cd $REMOTE_DIR && grep NEXTAUTH_URL .env | cut -d'=' -f2 | tr -d '\"'" 2>/dev/null || echo "未找到")
if [ "$CURRENT_URL" = "未找到" ]; then
echo -e "${RED}错误: 服务器上未找到 .env 文件或 NEXTAUTH_URL 配置${NC}"
exit 1
fi
echo -e "当前 NEXTAUTH_URL: ${YELLOW}$CURRENT_URL${NC}\n"
# 2. 询问用户访问URL
echo -e "${YELLOW}步骤 2: 确认用户访问URL${NC}"
echo "用户在浏览器中通过哪个URL访问系统?"
echo "1) http://115.190.235.230:3000"
echo "2) http://115.190.235.230:8006"
echo "3) 其他 (手动输入)"
read -p "请选择 (1-3): " choice
case $choice in
1)
NEW_URL="http://$SERVER_IP:3000"
;;
2)
NEW_URL="http://$SERVER_IP:$APP_PORT"
;;
3)
read -p "请输入完整的访问URL (包括 http:// 和端口): " NEW_URL
;;
*)
echo -e "${RED}无效选择${NC}"
exit 1
;;
esac
echo -e "将设置 NEXTAUTH_URL 为: ${GREEN}$NEW_URL${NC}\n"
# 3. 确认修改
read -p "确认修改? (y/n): " confirm
if [ "$confirm" != "y" ]; then
echo "已取消"
exit 0
fi
# 4. 更新服务器配置
echo -e "\n${YELLOW}步骤 3: 更新服务器配置${NC}"
ssh -p $SSH_PORT $SERVER_USER@$SERVER_IP << EOF
cd $REMOTE_DIR
# 备份原配置
cp .env .env.backup.\$(date +%Y%m%d_%H%M%S)
# 更新 NEXTAUTH_URL
sed -i 's|NEXTAUTH_URL=.*|NEXTAUTH_URL="$NEW_URL"|' .env
echo "配置已更新"
EOF
echo -e "${GREEN}✓ 配置更新成功${NC}\n"
# 5. 重启应用
echo -e "${YELLOW}步骤 4: 重启应用${NC}"
ssh -p $SSH_PORT $SERVER_USER@$SERVER_IP "pm2 restart chinese-family-tree"
echo -e "${GREEN}✓ 应用已重启${NC}\n"
# 6. 等待应用启动
echo "等待应用启动..."
sleep 3
# 7. 检查应用状态
echo -e "\n${YELLOW}步骤 5: 检查应用状态${NC}"
ssh -p $SSH_PORT $SERVER_USER@$SERVER_IP "pm2 status chinese-family-tree"
# 8. 显示后续步骤
echo -e "\n${GREEN}=== 修复完成 ===${NC}\n"
echo -e "${YELLOW}后续步骤:${NC}"
echo "1. 在浏览器中清除缓存和Cookie"
echo " - Chrome/Edge: Ctrl+Shift+Delete (Windows) 或 Cmd+Shift+Delete (Mac)"
echo " - 或者右键点击刷新按钮,选择'清空缓存并硬性重新加载'"
echo ""
echo "2. 重新访问: $NEW_URL"
echo ""
echo "3. 如果仍有问题,请查看日志:"
echo " ssh -p $SSH_PORT $SERVER_USER@$SERVER_IP 'pm2 logs chinese-family-tree'"
echo ""
echo -e "${GREEN}详细说明请参考: REDIRECT_LOOP_FIX.md${NC}"