wordpress / README.md
CatPtain's picture
Upload 3 files
ca8657b verified
---
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 许可证。