wordpress / README.md
CatPtain's picture
Upload 3 files
ca8657b verified
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: 直接上传文件

  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 仓库:

    git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
    cd YOUR_SPACE_NAME
    
  2. 复制必要文件:

    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. 提交并推送:

    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

默认登录信息

⚠️ 安全提醒: 首次登录后请立即更改默认密码!

📁 文件结构

/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 中修改:

# 将 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

🐛 故障排除

常见问题

  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 调试模式

📚 相关资源

🤝 贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目!

📄 许可证

本项目遵循 WordPress 的 GPL v2 许可证。