|
--- |
|
title: WordPress on Hugging Face Spaces |
|
emoji: 🚀 |
|
colorFrom: blue |
|
colorTo: purple |
|
sdk: docker |
|
app_file: app.py |
|
pinned: false |
|
--- |
|
|
|
# WordPress on Hugging Face Spaces |
|
|
|
这是一个专门为 Hugging Face Spaces 优化的 WordPress Docker 部署方案。 |
|
|
|
## 🚀 特性 |
|
|
|
- **WordPress 6.8.1** - 最新稳定版本 |
|
- **PHP 8.3** - 高性能 PHP 版本 |
|
- **SQLite 数据库** - 无需外部数据库服务 |
|
- **Apache Web 服务器** - 稳定可靠 |
|
- **端口 7860** - 符合 HF Spaces 要求 |
|
- **预配置设置** - 开箱即用 |
|
- **演示内容** - 包含示例文章和用户 |
|
|
|
## 📋 部署到 Hugging Face Spaces |
|
|
|
### 方法 1: 直接上传文件 |
|
|
|
1. 在 Hugging Face 创建新的 Space |
|
2. 选择 "Docker" 作为 SDK |
|
3. 上传以下文件到你的 Space: |
|
``` |
|
Dockerfile.hf-spaces → Dockerfile |
|
wp-config-hf.php |
|
db.php |
|
start-hf.sh |
|
README-HF-SPACES.md → README.md |
|
``` |
|
|
|
### 方法 2: Git 推送 |
|
|
|
1. 克隆你的 HF Space 仓库: |
|
```bash |
|
git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME |
|
cd YOUR_SPACE_NAME |
|
``` |
|
|
|
2. 复制必要文件: |
|
```bash |
|
cp path/to/wordpress-master/Dockerfile.hf-spaces ./Dockerfile |
|
cp path/to/wordpress-master/wp-config-hf.php . |
|
cp path/to/wordpress-master/db.php . |
|
cp path/to/wordpress-master/start-hf.sh . |
|
cp path/to/wordpress-master/README-HF-SPACES.md ./README.md |
|
``` |
|
|
|
3. 提交并推送: |
|
```bash |
|
git add . |
|
git commit -m "Add WordPress for HF Spaces" |
|
git push |
|
``` |
|
|
|
## 🔧 配置说明 |
|
|
|
### Dockerfile 修改 |
|
|
|
- **端口配置**: 从 80 改为 7860 |
|
- **数据库**: 使用 SQLite 替代 MySQL |
|
- **依赖**: 添加 SQLite 支持 |
|
- **权限**: 优化文件权限设置 |
|
|
|
### WordPress 配置 |
|
|
|
- **数据库**: SQLite 文件存储在 `wp-content/database/` |
|
- **URL 检测**: 自动检测 HTTPS 和域名 |
|
- **安全**: 禁用文件编辑,启用强制 HTTPS |
|
- **性能**: 优化内存限制和缓存设置 |
|
|
|
### 启动脚本 |
|
|
|
- **初始化**: 自动创建必要目录和数据库 |
|
- **权限**: 设置正确的文件权限 |
|
- **健康检查**: 提供状态页面 |
|
- **演示内容**: 可选的示例内容 |
|
|
|
## 🎯 访问信息 |
|
|
|
部署完成后,你可以通过以下方式访问: |
|
|
|
- **主页**: `https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space/` |
|
- **管理面板**: `https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space/wp-admin/` |
|
- **健康检查**: `https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space/health.html` |
|
|
|
### 默认登录信息 |
|
|
|
- **用户名**: `demo` |
|
- **密码**: `demo123` |
|
- **邮箱**: `[email protected]` |
|
|
|
> ⚠️ **安全提醒**: 首次登录后请立即更改默认密码! |
|
|
|
## 📁 文件结构 |
|
|
|
``` |
|
/var/www/html/ |
|
├── wp-config.php # WordPress 配置 |
|
├── wp-content/ |
|
│ ├── database/ # SQLite 数据库文件 |
|
│ ├── plugins/ # 插件目录 |
|
│ ├── themes/ # 主题目录 |
|
│ ├── uploads/ # 上传文件 |
|
│ └── db.php # SQLite 集成 |
|
├── .htaccess # URL 重写规则 |
|
└── health.html # 健康检查页面 |
|
``` |
|
|
|
## ⚠️ 限制和注意事项 |
|
|
|
### Hugging Face Spaces 限制 |
|
|
|
1. **存储**: 数据不会永久保存,重启后丢失 |
|
2. **资源**: CPU 和内存有限制 |
|
3. **网络**: 某些外部连接可能受限 |
|
4. **插件**: 某些需要特殊权限的插件可能无法使用 |
|
5. **权限**: 为了 HF Spaces 兼容性配置了宽松的文件权限 (777) |
|
|
|
### 建议用途 |
|
|
|
- ✅ **演示和测试**: 展示 WordPress 功能 |
|
- ✅ **开发环境**: 临时开发和调试 |
|
- ✅ **教学用途**: WordPress 学习和培训 |
|
- ❌ **生产环境**: 不适合正式网站 |
|
- ❌ **数据存储**: 重要数据会丢失 |
|
|
|
## 🔧 自定义配置 |
|
|
|
### 修改端口 (如果需要) |
|
|
|
在 `Dockerfile.hf-spaces` 中修改: |
|
```dockerfile |
|
# 将 7860 改为其他端口 |
|
sed -i 's/Listen 80/Listen YOUR_PORT/' /etc/apache2/ports.conf |
|
EXPOSE YOUR_PORT |
|
``` |
|
|
|
### 添加插件或主题 |
|
|
|
在 `Dockerfile.hf-spaces` 中添加: |
|
```dockerfile |
|
# 下载并安装插件 |
|
RUN wget -O plugin.zip "PLUGIN_DOWNLOAD_URL" && \ |
|
unzip plugin.zip -d /var/www/html/wp-content/plugins/ && \ |
|
rm plugin.zip |
|
``` |
|
|
|
### 修改 PHP 设置 |
|
|
|
在 `Dockerfile.hf-spaces` 中调整: |
|
```dockerfile |
|
RUN { \ |
|
echo 'memory_limit = 512M'; \ |
|
echo 'upload_max_filesize = 64M'; \ |
|
echo 'post_max_size = 64M'; \ |
|
} > /usr/local/etc/php/conf.d/custom.ini |
|
``` |
|
|
|
## 🐛 故障排除 |
|
|
|
### 常见问题 |
|
|
|
1. **Space 启动失败** |
|
- 检查 Dockerfile 语法 |
|
- 确认所有必需文件都已上传 |
|
- 查看 Space 日志获取详细错误信息 |
|
|
|
2. **WordPress 无法访问** |
|
- 等待几分钟让容器完全启动 |
|
- 检查端口 7860 是否正确配置 |
|
- 尝试访问 `/health.html` 检查服务状态 |
|
|
|
3. **数据库连接错误** |
|
- SQLite 数据库会自动创建 |
|
- 检查 `wp-content/database/` 目录权限 |
|
- 确认 `db.php` 文件存在 |
|
|
|
4. **权限错误 (Permission Denied)** |
|
- 容器已配置宽松权限 (777) 解决 HF Spaces 兼容性 |
|
- 如果仍有问题,检查 Space 日志中的具体错误 |
|
- 确保所有必需目录在 Dockerfile 中正确创建 |
|
|
|
### 调试方法 |
|
|
|
1. 查看容器日志 |
|
2. 访问 `/health.html` 检查状态 |
|
3. 检查 `/wp-content/database/` 目录权限 |
|
4. 启用 WordPress 调试模式 |
|
|
|
## 📚 相关资源 |
|
|
|
- [WordPress 官方文档](https://wordpress.org/documentation/) |
|
- [Hugging Face Spaces 文档](https://huggingface.co/docs/hub/spaces) |
|
- [SQLite Database Integration 插件](https://wordpress.org/plugins/sqlite-database-integration/) |
|
- [Docker 官方文档](https://docs.docker.com/) |
|
|
|
## 🤝 贡献 |
|
|
|
欢迎提交 Issue 和 Pull Request 来改进这个项目! |
|
|
|
## 📄 许可证 |
|
|
|
本项目遵循 WordPress 的 GPL v2 许可证。 |