--- 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` - **邮箱**: `demo@example.com` > ⚠️ **安全提醒**: 首次登录后请立即更改默认密码! ## 📁 文件结构 ``` /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 许可证。