metadata
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: 直接上传文件
- 在 Hugging Face 创建新的 Space
- 选择 "Docker" 作为 SDK
- 上传以下文件到你的 Space:
Dockerfile.hf-spaces → Dockerfile wp-config-hf.php db.php start-hf.sh README-HF-SPACES.md → README.md
方法 2: Git 推送
克隆你的 HF Space 仓库:
git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME cd YOUR_SPACE_NAME
复制必要文件:
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
提交并推送:
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 限制
- 存储: 数据不会永久保存,重启后丢失
- 资源: CPU 和内存有限制
- 网络: 某些外部连接可能受限
- 插件: 某些需要特殊权限的插件可能无法使用
- 权限: 为了 HF Spaces 兼容性配置了宽松的文件权限 (777)
建议用途
- ✅ 演示和测试: 展示 WordPress 功能
- ✅ 开发环境: 临时开发和调试
- ✅ 教学用途: WordPress 学习和培训
- ❌ 生产环境: 不适合正式网站
- ❌ 数据存储: 重要数据会丢失
🔧 自定义配置
修改端口 (如果需要)
在 Dockerfile.hf-spaces
中修改:
# 将 7860 改为其他端口
sed -i 's/Listen 80/Listen YOUR_PORT/' /etc/apache2/ports.conf
EXPOSE YOUR_PORT
添加插件或主题
在 Dockerfile.hf-spaces
中添加:
# 下载并安装插件
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
中调整:
RUN { \
echo 'memory_limit = 512M'; \
echo 'upload_max_filesize = 64M'; \
echo 'post_max_size = 64M'; \
} > /usr/local/etc/php/conf.d/custom.ini
🐛 故障排除
常见问题
Space 启动失败
- 检查 Dockerfile 语法
- 确认所有必需文件都已上传
- 查看 Space 日志获取详细错误信息
WordPress 无法访问
- 等待几分钟让容器完全启动
- 检查端口 7860 是否正确配置
- 尝试访问
/health.html
检查服务状态
数据库连接错误
- SQLite 数据库会自动创建
- 检查
wp-content/database/
目录权限 - 确认
db.php
文件存在
权限错误 (Permission Denied)
- 容器已配置宽松权限 (777) 解决 HF Spaces 兼容性
- 如果仍有问题,检查 Space 日志中的具体错误
- 确保所有必需目录在 Dockerfile 中正确创建
调试方法
- 查看容器日志
- 访问
/health.html
检查状态 - 检查
/wp-content/database/
目录权限 - 启用 WordPress 调试模式
📚 相关资源
🤝 贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目!
📄 许可证
本项目遵循 WordPress 的 GPL v2 许可证。