File size: 5,059 Bytes
a1b4689
 
 
 
 
 
 
 
 
 
bf3ada3
a1b4689
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
 
 
 
 
 
 
 
 
 
7701176
5d4c685
7701176
5d4c685
 
bf3ada3
 
7701176
bf3ada3
 
 
7701176
 
bf3ada3
 
 
 
 
7701176
 
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
7701176
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
7701176
bf3ada3
 
 
7701176
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
7701176
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
7701176
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
7701176
bf3ada3
 
 
7701176
bf3ada3
 
 
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
 
 
 
 
 
5d4c685
 
bf3ada3
 
 
 
 
7701176
 
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
7701176
bf3ada3
7701176
bf3ada3
 
 
7701176
bf3ada3
7701176
bf3ada3
 
 
 
 
 
 
7701176
bf3ada3
7701176
bf3ada3
 
7701176
bf3ada3
7701176
bf3ada3
7701176
bf3ada3
 
 
7701176
bf3ada3
5d4c685
bf3ada3
5d4c685
bf3ada3
 
 
 
5d4c685
 
7701176
bf3ada3
7701176
5d4c685
7701176
bf3ada3
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
---
title: WordPress with SQLite
emoji: 🌐
colorFrom: blue
colorTo: purple
sdk: docker
sdk_version: "4.0"
app_file: app.py
pinned: false
---
# WordPress for Hugging Face Spaces

这是一个专门为 Hugging Face Spaces 优化的 WordPress 部署方案,采用单容器架构,使用 SQLite 数据库,并包含自动文件清理功能。

## 🚀 特性

- **单容器部署**: 无需复杂的多容器编排
- **SQLite 数据库**: 轻量级,无需单独的数据库服务器
- **自动清理**: 自动删除超过1年的文件,保持存储空间整洁
- **性能优化**: 针对 Hugging Face Spaces 环境优化
- **安全配置**: 内置安全最佳实践
- **监控面板**: 实时查看清理统计和系统状态

## 📋 系统要求

- Hugging Face Spaces (Docker 环境)
- 最小 2GB RAM
- 最小 10GB 存储空间

## 🛠️ 部署步骤

### 1. 创建 Hugging Face Space

1. 访问 [Hugging Face Spaces](https://huggingface.co/spaces)
2. 点击 "Create new Space"
3. 选择 "Docker" 作为 SDK
4. 设置 Space 名称和可见性

### 2. 上传文件

将以下文件上传到你的 Space 仓库:

```
├── Dockerfile
├── wp-config.php
├── monitor-cleanup.sh
├── .dockerignore
└── README_SPACES.md
```

### 3. 自动部署

Hugging Face 会自动检测 Dockerfile 并开始构建部署。

## 🔧 配置说明

### 数据库配置

- **类型**: SQLite
- **位置**: `/var/www/html/wp-content/database/wordpress.db`
- **自动备份**: 每日备份到日志目录

### 自动清理配置`wp-config.php` 中可以调整以下设置:

```php
// 文件保留期限(天数)
define('FILE_RETENTION_DAYS', 365); // 1年

// 清理功能开关
define('AUTO_CLEANUP_ENABLED', true);
```

### 清理策略

自动清理脚本会处理以下内容:

1. **上传文件**: 删除超过1年的媒体文件
2. **缓存文件**: 清理过期的缓存
3. **临时文件**: 删除临时和备份文件
4. **日志文件**: 压缩和清理旧日志
5. **空目录**: 删除空的目录结构

### 排除规则

以下文件类型不会被自动删除:
- 数据库文件 (*.db, *.sql)
- 配置文件 (wp-config.php, .htaccess)
- 核心文件 (index.php)
- 当前日志文件

## 📊 监控功能

### 管理面板统计

登录 WordPress 管理后台后,在仪表板可以看到:
- 最近清理记录
- 删除文件统计
- 磁盘使用情况
- 系统性能指标

### 日志查看

清理日志保存在 `/var/log/wordpress/cleanup.log`,包含:
- 清理时间和结果
- 删除的文件列表
- 系统资源使用情况
- 错误和警告信息

## 🔒 安全特性

- **文件编辑禁用**: 禁止在后台编辑文件
- **XML-RPC 禁用**: 防止 XML-RPC 攻击
- **登录限制**: 限制登录尝试次数
- **调试模式**: 生产环境禁用调试输出
- **文件权限**: 严格的文件权限控制

## ⚡ 性能优化

- **内存限制**: 256MB PHP 内存限制
- **上传限制**: 64MB 文件上传限制
- **自动保存**: 5分钟自动保存间隔
- **修订控制**: 限制文章修订版本数量
- **垃圾清理**: 30天自动清空垃圾箱

## 🚨 故障排除

### 常见问题

1. **数据库连接错误**
   - 检查 SQLite 插件是否正确安装
   - 确认数据库目录权限正确

2. **文件上传失败**
   - 检查上传目录权限
   - 确认磁盘空间充足

3. **清理脚本不工作**
   - 检查 cron 服务状态
   - 查看清理日志文件

### 调试模式

如需启用调试模式,在 `wp-config.php` 中修改:

```php
define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', true);
```

### 手动清理

如需手动执行清理:

```bash
# 进入容器
docker exec -it <container_name> /bin/bash

# 执行清理脚本
/scripts/monitor-cleanup.sh
```

## 📈 使用建议

### 内容管理

1. **定期备份**: 虽然有自动清理,建议定期导出重要内容
2. **媒体优化**: 上传前压缩图片,减少存储占用
3. **插件选择**: 选择轻量级插件,避免资源密集型插件

### 性能监控

1. **定期检查**: 查看管理面板的清理统计
2. **磁盘监控**: 关注磁盘使用率警告
3. **日志分析**: 定期查看清理日志

### 安全维护

1. **定期更新**: 保持 WordPress 和插件更新
2. **密码安全**: 使用强密码和双因素认证
3. **访问控制**: 限制管理员账户数量

## 🔄 更新和维护

### 更新 WordPress

由于使用 Docker 镜像,WordPress 更新需要重新构建镜像:

1. 更新 Dockerfile 中的 WordPress 版本
2. 重新部署 Space

### 配置更新

修改配置文件后,需要重新部署:

1. 更新相应的配置文件
2. 提交到 Git 仓库
3. Hugging Face 会自动重新部署

## 📞 支持

如遇到问题,可以:

1. 查看 Hugging Face Spaces 文档
2. 检查容器日志
3. 参考 WordPress 官方文档
4. 在 GitHub 上提交 Issue

## 📄 许可证

本项目遵循原项目的许可证条款。

---

**注意**: 这是一个实验性部署方案,建议在生产环境使用前进行充分测试。