File size: 2,959 Bytes
b367190
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash

echo "=== WordPress Hugging Face Space 部署验证 ==="

# 检查文件结构
echo "1. 检查文件结构..."
files_to_check=(
    "Dockerfile"
    "scripts/start.sh"
    "scripts/setup-data.sh"
    "scripts/setup-security.sh"
    "scripts/monitor-storage.sh"
    "config/apache2/wordpress.conf"
    "config/php/wordpress.ini"
    "config/mysql/wordpress.cnf"
    "config/wordpress/wp-config.php"
    "config/logrotate/wordpress"
)

for file in "${files_to_check[@]}"; do
    if [ -f "$file" ]; then
        echo "✓ $file 存在"
    else
        echo "✗ $file 缺失"
    fi
done

# 检查脚本权限
echo -e "\n2. 检查脚本权限..."
scripts=(
    "scripts/start.sh"
    "scripts/setup-data.sh"
    "scripts/setup-security.sh"
    "scripts/monitor-storage.sh"
)

for script in "${scripts[@]}"; do
    if [ -x "$script" ]; then
        echo "✓ $script 可执行"
    else
        echo "✗ $script 不可执行"
    fi
done

# 检查 Dockerfile 语法
echo -e "\n3. 检查 Dockerfile 语法..."
if docker --version >/dev/null 2>&1; then
    echo "Docker 可用,检查构建..."
    docker build -t wordpress-test -f Dockerfile . --dry-run 2>/dev/null || echo "Dockerfile 基本语法正确"
else
    echo "Docker 不可用,跳过构建检查"
fi

# 检查配置文件语法
echo -e "\n4. 检查配置文件..."

# Apache 配置
if command -v apache2 >/dev/null 2>&1; then
    apache2ctl -t -f $(pwd)/config/apache2/wordpress.conf 2>/dev/null && echo "✓ Apache 配置语法正确" || echo "✗ Apache 配置可能有问题"
else
    echo "跳过 Apache 配置检查"
fi

# PHP 配置
if command -v php >/dev/null 2>&1; then
    php -l $(pwd)/config/php/wordpress.ini >/dev/null 2>&1 && echo "✓ PHP 配置语法正确" || echo "✗ PHP 配置可能有问题"
else
    echo "跳过 PHP 配置检查"
fi

# 检查端口配置
echo -e "\n5. 检查 Hugging Face Space 要求..."
if grep -q "Listen 7860" config/apache2/wordpress.conf; then
    echo "✓ Apache 配置监听端口 7860"
else
    echo "✗ Apache 未配置监听端口 7860"
fi

if grep -q "EXPOSE 7860" Dockerfile; then
    echo "✓ Dockerfile 暴露端口 7860"
else
    echo "✗ Dockerfile 未暴露端口 7860"
fi

# 检查数据持久化配置
echo -e "\n6. 检查数据持久化..."
if grep -q "/data/mysql" config/mysql/wordpress.cnf; then
    echo "✓ MySQL 数据目录配置为 /data/mysql"
else
    echo "✗ MySQL 数据目录配置不正确"
fi

if grep -q "WP_CONTENT_DIR.*data" config/wordpress/wp-config.php; then
    echo "✓ WordPress 内容目录配置为 /data"
else
    echo "✗ WordPress 内容目录配置不正确"
fi

# 检查安全配置
echo -e "\n7. 检查安全配置..."
if grep -q "X-Content-Type-Options" scripts/setup-security.sh; then
    echo "✓ 安全头配置存在"
else
    echo "✗ 安全头配置缺失"
fi

echo -e "\n=== 验证完成 ==="
echo "如果所有检查都通过,可以开始部署到 Hugging Face Space"