107 lines
3.0 KiB
Bash
Executable File
107 lines
3.0 KiB
Bash
Executable File
#!/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}"
|