#!/bin/bash # 测试环境配置脚本 # 在服务器上执行: bash setup-test-env.sh set -e echo "==========================================" echo " kb-web 测试环境配置" echo "==========================================" # 配置 TEST_DIR="/www/wwwroot/kb-web-test" TEST_DB="kb_web_test" DB_USER="kb-admin" DB_PASS="" # 在这里填入数据库密码 # 1. 创建测试目录 echo "[1/5] 创建测试目录..." mkdir -p $TEST_DIR mkdir -p /www/backup/kb-web # 2. 创建测试数据库 echo "[2/5] 创建测试数据库..." if [ -n "$DB_PASS" ]; then mysql -u$DB_USER -p$DB_PASS -e "CREATE DATABASE IF NOT EXISTS $TEST_DB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>/dev/null || echo "数据库可能已存在或密码未设置" # 复制正式数据库表结构 mysql -u$DB_USER -p$DB_PASS -e "USE $TEST_DB; SOURCE /www/wwwroot/kb-web/kb-admin.sql;" 2>/dev/null || echo "跳过数据导入" fi # 3. 克隆代码 echo "[3/5] 克隆代码..." if [ -d "$TEST_DIR/.git" ]; then cd $TEST_DIR git fetch origin git reset --hard origin/main else git clone ssh://sc-gitea@192.168.1.22:2223/starmen1265/kb-web.git $TEST_DIR cd $TEST_DIR fi # 4. 配置测试环境 echo "[4/5] 配置测试环境..." # 复制测试配置 if [ -f "$TEST_DIR/config.test.php" ]; then cp $TEST_DIR/config.test.php $TEST_DIR/config.php echo "已复制测试配置文件" fi # 创建测试用户目录 mkdir -p $TEST_DIR/test_user # 设置权限 chown -R www:www $TEST_DIR 2>/dev/null || true # 5. 配置 Nginx echo "[5/5] 配置 Nginx..." cat > /www/server/panel/vhost/nginx/kb-web-test.conf << 'EOF' server { listen 8080; server_name _; root /www/wwwroot/kb-web-test; index index.php index.html; access_log /www/wwwlogs/kb-web-test.log; error_log /www/wwwlogs/kb-web-test.error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/tmp/php-cgi-81.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\. { deny all; } } EOF # 重载 Nginx nginx -t && nginx -s reload echo "" echo "==========================================" echo " ✅ 测试环境配置完成!" echo "==========================================" echo "" echo "测试环境: http://micecola.top:8080" echo "正式环境: http://micecola.top (端口 80)" echo "" echo "下一步:" echo "1. 修改 $TEST_DIR/config.php 中的数据库密码" echo "2. 访问 http://micecola.top:8080 测试" echo "=========================================="