更新 CI/CD 配置

- 正式环境目录改为 /www/wwwroot/kb-web
- 测试环境目录 /www/wwwroot/kb-web-test
- 添加测试环境配置脚本
- 添加 config.test.php 模板
This commit is contained in:
2026-02-15 09:46:23 +08:00
parent 25c9002cbe
commit 058edd62e0
2 changed files with 156 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
<?php
// 测试环境配置文件
// 复制此文件为 config.php 并修改数据库配置
// 数据库配置
define('DB_HOST', 'localhost');
define('DB_NAME', 'kb-web-test'); // 测试环境数据库
define('DB_USER', 'kb-admin');
define('DB_PASS', 'your_password'); // 修改为实际密码
// Session 配置
session_start();
// 数据库连接
function getDB() {
static $pdo = null;
if ($pdo === null) {
try {
$pdo = new PDO(
"mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4",
DB_USER,
DB_PASS,
[
PDO::ATTR_ERRMODE => 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;
}
+99
View File
@@ -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 "=========================================="