|
--- |
|
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 |
|
|
|
## 📄 许可证 |
|
|
|
本项目遵循原项目的许可证条款。 |
|
|
|
--- |
|
|
|
**注意**: 这是一个实验性部署方案,建议在生产环境使用前进行充分测试。 |
|
|