Update README.md
Browse files
README.md
CHANGED
|
@@ -8,204 +8,209 @@ sdk_version: "4.0"
|
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
---
|
|
|
|
| 11 |
|
| 12 |
-
|
| 13 |
|
| 14 |
-
|
| 15 |
|
| 16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
### 1. 创建 Hugging Face Space
|
| 19 |
|
| 20 |
1. 访问 [Hugging Face Spaces](https://huggingface.co/spaces)
|
| 21 |
2. 点击 "Create new Space"
|
| 22 |
-
3. 选择
|
| 23 |
-
|
| 24 |
-
- **Hardware**: `CPU basic` (推荐) 或更高
|
| 25 |
-
- **Visibility**: 根据需要选择
|
| 26 |
|
| 27 |
-
### 2. 上传
|
|
|
|
|
|
|
| 28 |
|
| 29 |
-
将以下文件上传到你的 Space:
|
| 30 |
```
|
| 31 |
-
Dockerfile
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
spaces.yml (可选)
|
| 37 |
```
|
| 38 |
|
| 39 |
-
### 3.
|
| 40 |
|
| 41 |
-
|
| 42 |
|
| 43 |
-
|
| 44 |
-
- `GITHUB_REPO`: GitHub 仓库路径 (格式: `username/repository-name`)
|
| 45 |
|
| 46 |
-
###
|
| 47 |
-
1. 访问 GitHub Settings > Developer settings > Personal access tokens
|
| 48 |
-
2. 创建新 token,需要以下权限:
|
| 49 |
-
- `repo` (完整仓库访问权限)
|
| 50 |
-
- `contents:write` (写入仓库内容)
|
| 51 |
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
|
| 56 |
-
###
|
| 57 |
|
| 58 |
-
|
| 59 |
|
| 60 |
-
|
|
|
|
|
|
|
| 61 |
|
| 62 |
-
|
|
|
|
|
|
|
| 63 |
|
| 64 |
-
###
|
| 65 |
|
| 66 |
-
|
| 67 |
-
# 克隆或下载项目
|
| 68 |
-
git clone <your-repo-url>
|
| 69 |
-
cd wordpress-docker-compose-master
|
| 70 |
|
| 71 |
-
|
| 72 |
-
|
|
|
|
|
|
|
|
|
|
| 73 |
|
| 74 |
-
#
|
| 75 |
-
docker-compose up -d --build
|
| 76 |
-
```
|
| 77 |
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
-
|
| 81 |
-
# 构建镜像
|
| 82 |
-
docker build -t wordpress-sqlite .
|
| 83 |
|
| 84 |
-
#
|
| 85 |
-
docker run -p 7860:7860 wordpress-sqlite
|
| 86 |
-
```
|
| 87 |
|
| 88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
|
| 90 |
-
|
| 91 |
-
- 主题开发:可以挂载本地主题目录
|
| 92 |
-
- 插件开发:可以挂载本地插件目录
|
| 93 |
-
- 配置文件:可以修改 `config/wp_php.ini`
|
| 94 |
|
| 95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
|
| 97 |
-
##
|
| 98 |
-
- 无需外部数据库服务
|
| 99 |
-
- 数据存储在 `/var/www/html/wp-content/database/`
|
| 100 |
-
- 自动配置 SQLite Integration 插件
|
| 101 |
|
| 102 |
-
|
| 103 |
-
- **
|
| 104 |
-
- **
|
| 105 |
-
- **
|
|
|
|
| 106 |
|
| 107 |
-
##
|
| 108 |
-
- 端口 7860 (HF Space 标准端口)
|
| 109 |
-
- 内存优化配置
|
| 110 |
-
- 健康检查支持
|
| 111 |
|
| 112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 113 |
|
| 114 |
-
##
|
| 115 |
|
| 116 |
-
|
| 117 |
-
- **前台**: `https://your-space-name.hf.space/`
|
| 118 |
-
- **后台**: `https://your-space-name.hf.space/wp-admin/`
|
| 119 |
|
| 120 |
-
**
|
| 121 |
-
-
|
| 122 |
-
-
|
| 123 |
|
| 124 |
-
|
|
|
|
|
|
|
| 125 |
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
4. 开始使用 WordPress
|
| 130 |
|
| 131 |
-
###
|
| 132 |
|
| 133 |
-
如
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
|
| 135 |
```bash
|
| 136 |
-
#
|
| 137 |
-
/
|
|
|
|
|
|
|
|
|
|
| 138 |
```
|
| 139 |
|
| 140 |
-
##
|
| 141 |
|
| 142 |
-
###
|
| 143 |
-
- 检查 Dockerfile 语法
|
| 144 |
-
- 确认端口设置为 7860
|
| 145 |
-
- 查看构建日志中的错误信息
|
| 146 |
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
- 确认 SQLite 插件正确安装
|
| 151 |
|
| 152 |
-
###
|
| 153 |
-
- 验证 `GITHUB_TOKEN` 和 `GITHUB_REPO` 环境变量
|
| 154 |
-
- 确认 GitHub Token 有正确权限
|
| 155 |
-
- 检查仓库中是否存在 `backups` 文件夹
|
| 156 |
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
|
| 161 |
-
##
|
| 162 |
|
| 163 |
-
|
| 164 |
-
.
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
├── DEPLOYMENT_GUIDE.md # 部署指南
|
| 171 |
-
├── docker-compose.yml # Docker Compose (SQLite)
|
| 172 |
-
├── docker-compose.local.yml # 本地开发配置
|
| 173 |
-
├── docker-compose.mysql.yml # MySQL 版本 (备份)
|
| 174 |
-
├── config/
|
| 175 |
-
│ ├── wp_php.ini # PHP 配置
|
| 176 |
-
│ └── pma_php.ini # phpMyAdmin 配置 (MySQL版本)
|
| 177 |
-
├── .dockerignore # Docker 忽略文件
|
| 178 |
-
└── env.example # 环境变量示例 (MySQL版本)
|
| 179 |
-
```
|
| 180 |
|
| 181 |
-
|
| 182 |
|
| 183 |
-
1.
|
| 184 |
-
|
| 185 |
-
- 定期轮换 Token
|
| 186 |
-
- 不要在代码中硬编码 Token
|
| 187 |
|
| 188 |
-
|
| 189 |
-
- 使用强密码
|
| 190 |
-
- 定期更新 WordPress 和插件
|
| 191 |
-
- 限制管理员访问
|
| 192 |
|
| 193 |
-
|
| 194 |
-
- 备份仓库设为私有
|
| 195 |
-
- 定期检查备份完整性
|
| 196 |
|
| 197 |
-
|
|
|
|
|
|
|
| 198 |
|
| 199 |
-
|
| 200 |
|
| 201 |
-
|
| 202 |
|
| 203 |
-
|
|
|
|
|
|
|
|
|
|
| 204 |
|
| 205 |
## 📄 许可证
|
| 206 |
|
| 207 |
-
本项目
|
| 208 |
|
| 209 |
---
|
| 210 |
|
| 211 |
-
**注意**: 这是一个
|
|
|
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
---
|
| 11 |
+
# WordPress for Hugging Face Spaces
|
| 12 |
|
| 13 |
+
这是一个专门为 Hugging Face Spaces 优化的 WordPress 部署方案,采用单容器架构,使用 SQLite 数据库,并包含自动文件清理功能。
|
| 14 |
|
| 15 |
+
## 🚀 特性
|
| 16 |
|
| 17 |
+
- **单容器部署**: 无需复杂的多容器编排
|
| 18 |
+
- **SQLite 数据库**: 轻量级,无需单独的数据库服务器
|
| 19 |
+
- **自动清理**: 自动删除超过1年的文件,保持存储空间整洁
|
| 20 |
+
- **性能优化**: 针对 Hugging Face Spaces 环境优化
|
| 21 |
+
- **安全配置**: 内置安全最佳实践
|
| 22 |
+
- **监控面板**: 实时查看清理统计和系统状态
|
| 23 |
+
|
| 24 |
+
## 📋 系统要求
|
| 25 |
+
|
| 26 |
+
- Hugging Face Spaces (Docker 环境)
|
| 27 |
+
- 最小 2GB RAM
|
| 28 |
+
- 最小 10GB 存储空间
|
| 29 |
+
|
| 30 |
+
## 🛠️ 部署步骤
|
| 31 |
|
| 32 |
### 1. 创建 Hugging Face Space
|
| 33 |
|
| 34 |
1. 访问 [Hugging Face Spaces](https://huggingface.co/spaces)
|
| 35 |
2. 点击 "Create new Space"
|
| 36 |
+
3. 选择 "Docker" 作为 SDK
|
| 37 |
+
4. 设置 Space 名称和可见性
|
|
|
|
|
|
|
| 38 |
|
| 39 |
+
### 2. 上传文件
|
| 40 |
+
|
| 41 |
+
将以下文件上传到你的 Space 仓库:
|
| 42 |
|
|
|
|
| 43 |
```
|
| 44 |
+
├── Dockerfile
|
| 45 |
+
├── wp-config.php
|
| 46 |
+
├── monitor-cleanup.sh
|
| 47 |
+
├── .dockerignore
|
| 48 |
+
└── README_SPACES.md
|
|
|
|
| 49 |
```
|
| 50 |
|
| 51 |
+
### 3. 自动部署
|
| 52 |
|
| 53 |
+
Hugging Face 会自动检测 Dockerfile 并开始构建部署。
|
| 54 |
|
| 55 |
+
## 🔧 配置说明
|
|
|
|
| 56 |
|
| 57 |
+
### 数据库配置
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
+
- **类型**: SQLite
|
| 60 |
+
- **位置**: `/var/www/html/wp-content/database/wordpress.db`
|
| 61 |
+
- **自动备份**: 每日备份到日志目录
|
| 62 |
|
| 63 |
+
### 自动清理配置
|
| 64 |
|
| 65 |
+
在 `wp-config.php` 中可以调整以下设置:
|
| 66 |
|
| 67 |
+
```php
|
| 68 |
+
// 文件保留期限(天数)
|
| 69 |
+
define('FILE_RETENTION_DAYS', 365); // 1年
|
| 70 |
|
| 71 |
+
// 清理功能开关
|
| 72 |
+
define('AUTO_CLEANUP_ENABLED', true);
|
| 73 |
+
```
|
| 74 |
|
| 75 |
+
### 清理策略
|
| 76 |
|
| 77 |
+
自动清理脚本会处理以下内容:
|
|
|
|
|
|
|
|
|
|
| 78 |
|
| 79 |
+
1. **上传文件**: 删除超过1年的媒体文件
|
| 80 |
+
2. **缓存文件**: 清理过期的缓存
|
| 81 |
+
3. **临时文件**: 删除临时和备份文件
|
| 82 |
+
4. **日志文件**: 压缩和清理旧日志
|
| 83 |
+
5. **空目录**: 删除空的目录结构
|
| 84 |
|
| 85 |
+
### 排除规则
|
|
|
|
|
|
|
| 86 |
|
| 87 |
+
以下文件类型不会被自动删除:
|
| 88 |
+
- 数据库文件 (*.db, *.sql)
|
| 89 |
+
- 配置文件 (wp-config.php, .htaccess)
|
| 90 |
+
- 核心文件 (index.php)
|
| 91 |
+
- 当前日志文件
|
| 92 |
|
| 93 |
+
## 📊 监控功能
|
|
|
|
|
|
|
| 94 |
|
| 95 |
+
### 管理面板统计
|
|
|
|
|
|
|
| 96 |
|
| 97 |
+
登录 WordPress 管理后台后,在仪表板可以看到:
|
| 98 |
+
- 最近清理记录
|
| 99 |
+
- 删除文件统计
|
| 100 |
+
- 磁盘使用情况
|
| 101 |
+
- 系统性能指标
|
| 102 |
|
| 103 |
+
### 日志查看
|
|
|
|
|
|
|
|
|
|
| 104 |
|
| 105 |
+
清理日志保存在 `/var/log/wordpress/cleanup.log`,包含:
|
| 106 |
+
- 清理时间和结果
|
| 107 |
+
- 删除的文件列表
|
| 108 |
+
- 系统资源使用情况
|
| 109 |
+
- 错误和警告信息
|
| 110 |
|
| 111 |
+
## 🔒 安全特性
|
|
|
|
|
|
|
|
|
|
| 112 |
|
| 113 |
+
- **文件编辑禁用**: 禁止在后台编辑文件
|
| 114 |
+
- **XML-RPC 禁用**: 防止 XML-RPC 攻击
|
| 115 |
+
- **登录限制**: 限��登录尝试次数
|
| 116 |
+
- **调试模式**: 生产环境禁用调试输出
|
| 117 |
+
- **文件权限**: 严格的文件权限控制
|
| 118 |
|
| 119 |
+
## ⚡ 性能优化
|
|
|
|
|
|
|
|
|
|
| 120 |
|
| 121 |
+
- **内存限制**: 256MB PHP 内存限制
|
| 122 |
+
- **上传限制**: 64MB 文件上传限制
|
| 123 |
+
- **自动保存**: 5分钟自动保存间隔
|
| 124 |
+
- **修订控制**: 限制文章修订版本数量
|
| 125 |
+
- **垃圾清理**: 30天自动清空垃圾箱
|
| 126 |
|
| 127 |
+
## 🚨 故障排除
|
| 128 |
|
| 129 |
+
### 常见问题
|
|
|
|
|
|
|
| 130 |
|
| 131 |
+
1. **数据库连接错误**
|
| 132 |
+
- 检查 SQLite 插件是否正确安装
|
| 133 |
+
- 确认数据库目录权限正确
|
| 134 |
|
| 135 |
+
2. **文件上传失败**
|
| 136 |
+
- 检查上传目录权限
|
| 137 |
+
- 确认磁盘空间充足
|
| 138 |
|
| 139 |
+
3. **清理脚本不工作**
|
| 140 |
+
- 检查 cron 服务状态
|
| 141 |
+
- 查看清理日志文件
|
|
|
|
| 142 |
|
| 143 |
+
### 调试模式
|
| 144 |
|
| 145 |
+
如需启用调试模式,在 `wp-config.php` 中修改:
|
| 146 |
+
|
| 147 |
+
```php
|
| 148 |
+
define('WP_DEBUG', true);
|
| 149 |
+
define('WP_DEBUG_DISPLAY', true);
|
| 150 |
+
```
|
| 151 |
+
|
| 152 |
+
### 手动清理
|
| 153 |
+
|
| 154 |
+
如需手动执行清理:
|
| 155 |
|
| 156 |
```bash
|
| 157 |
+
# 进入容器
|
| 158 |
+
docker exec -it <container_name> /bin/bash
|
| 159 |
+
|
| 160 |
+
# 执行清理脚本
|
| 161 |
+
/scripts/monitor-cleanup.sh
|
| 162 |
```
|
| 163 |
|
| 164 |
+
## 📈 使用建议
|
| 165 |
|
| 166 |
+
### 内容管理
|
|
|
|
|
|
|
|
|
|
| 167 |
|
| 168 |
+
1. **定期备份**: 虽然有自动清理,建议定期导出重要内容
|
| 169 |
+
2. **媒体优化**: 上传前压缩图片,减少存储占用
|
| 170 |
+
3. **插件选择**: 选择轻量级插件,避免资源密集型插件
|
|
|
|
| 171 |
|
| 172 |
+
### 性能监控
|
|
|
|
|
|
|
|
|
|
| 173 |
|
| 174 |
+
1. **定期检查**: 查看管理面板的清理统计
|
| 175 |
+
2. **磁盘监控**: 关注磁盘使用率警告
|
| 176 |
+
3. **日志分析**: 定期查看清理日志
|
| 177 |
|
| 178 |
+
### 安全维护
|
| 179 |
|
| 180 |
+
1. **定期更新**: 保持 WordPress 和插件更新
|
| 181 |
+
2. **密码安全**: 使用强密码和双因素认证
|
| 182 |
+
3. **访问控制**: 限制管理员账户数量
|
| 183 |
+
|
| 184 |
+
## 🔄 更新和维护
|
| 185 |
+
|
| 186 |
+
### 更新 WordPress
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 187 |
|
| 188 |
+
由于使用 Docker 镜像,WordPress 更新需要重新构建镜像:
|
| 189 |
|
| 190 |
+
1. 更新 Dockerfile 中的 WordPress 版本
|
| 191 |
+
2. 重新部署 Space
|
|
|
|
|
|
|
| 192 |
|
| 193 |
+
### 配置更新
|
|
|
|
|
|
|
|
|
|
| 194 |
|
| 195 |
+
修改配置文件后,需要重新部署:
|
|
|
|
|
|
|
| 196 |
|
| 197 |
+
1. 更新相应的配置文件
|
| 198 |
+
2. 提交到 Git 仓库
|
| 199 |
+
3. Hugging Face 会自动重新部署
|
| 200 |
|
| 201 |
+
## 📞 支持
|
| 202 |
|
| 203 |
+
如遇到问题,可以:
|
| 204 |
|
| 205 |
+
1. 查看 Hugging Face Spaces 文档
|
| 206 |
+
2. 检查容器日志
|
| 207 |
+
3. 参考 WordPress 官方文档
|
| 208 |
+
4. 在 GitHub 上提交 Issue
|
| 209 |
|
| 210 |
## 📄 许可证
|
| 211 |
|
| 212 |
+
本项目遵循原项目的许可证条款。
|
| 213 |
|
| 214 |
---
|
| 215 |
|
| 216 |
+
**注意**: 这是一个实验性部署方案,建议在生产环境使用前进行充分测试。
|