File size: 5,747 Bytes
52c8a68
 
 
 
 
 
 
 
 
 
bf47729
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ca8657b
bf47729
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ca8657b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bf47729
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
---
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 许可证。