From 058edd62e0e1789c6e5a8f92727c053a9efbbb70 Mon Sep 17 00:00:00 2001 From: starmen1265 Date: Sun, 15 Feb 2026 09:46:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20CI/CD=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 正式环境目录改为 /www/wwwroot/kb-web - 测试环境目录 /www/wwwroot/kb-web-test - 添加测试环境配置脚本 - 添加 config.test.php 模板 --- config.test.php | 57 +++++++++++++++++++++++ deploy/setup-test-env.sh | 99 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 config.test.php create mode 100644 deploy/setup-test-env.sh diff --git a/config.test.php b/config.test.php new file mode 100644 index 0000000..c9895eb --- /dev/null +++ b/config.test.php @@ -0,0 +1,57 @@ + PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC + ] + ); + } catch (PDOException $e) { + die("数据库连接失败: " . $e->getMessage()); + } + } + return $pdo; +} + +// 检查登录状态 +function checkLogin() { + if (!isset($_SESSION['user_id'])) { + header('Location: index.php'); + exit; + } +} + +// 获取当前用户信息 +function getCurrentUser() { + if (!isset($_SESSION['user_id'])) { + return null; + } + $db = getDB(); + $stmt = $db->prepare("SELECT * FROM users WHERE id = ?"); + $stmt->execute([$_SESSION['user_id']]); + return $stmt->fetch(); +} + +// 获取用户文档目录 +function getUserDocDir($username) { + return __DIR__ . '/' . $username; +} diff --git a/deploy/setup-test-env.sh b/deploy/setup-test-env.sh new file mode 100644 index 0000000..6319eb7 --- /dev/null +++ b/deploy/setup-test-env.sh @@ -0,0 +1,99 @@ +#!/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 "=========================================="