Files
hesu-JT/docs/DEPLOYMENT.md
T
2026-08-27 11:54:26 +08:00

133 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HESU 主题线上部署方案
> 适用:hesu-theme/hesu.zip(13 MB,图片压缩版,2026-08-19 验收见 docs/plans-audit-fix-acceptance.md)
> 主题要求:WordPress ≥ 6.1(测试至 7.0)、PHP ≥ 7.4(建议 8.x)、MySQL/MariaDB、HTTPS
---
## 一、部署前准备
| 项 | 要求 | 说明 |
|---|---|---|
| PHP | ≥7.4,建议 8.0+ | 需扩展:mysqli/gd/curl/mbstring/fileinfo/openssl(主流主机默认都有) |
| WordPress | ≥6.1 | 全新安装(见"已有站点"警告) |
| 上传限制 | ≥16MB 或走 FTP | wp-admin 上传 zip 受 `upload_max_filesize` 限制(常见默认 2–8M,13MB 会失败) |
| 插件 | Contact Form 7 | 唯一硬依赖(联系表单);**先装它再激活主题**(激活时自动建表单) |
---
## 二、全新站点部署(推荐路径)
### Step 1 — 安装 WordPress
1. 主机绑定域名 + SSL 证书(HTTPS)
2. 全新安装 WordPress(数据库新建;站点语言随意——前台内容是英文,管理后台语言不影响)
3. **设置 → 固定链接 → 选择"文章名"(/%postname%/)→ 保存**(seed 页面的友好 URL 依赖它)
### Step 2 — 安装 Contact Form 7
插件 → 安装插件 → 搜索 "Contact Form 7" → 安装并**激活**。
(此时 CF7 自带一个 "Contact form 1",无需管它;主题激活时会另建 "HESU Inquiry" 并自动绑定到联系页。)
### Step 3 — 上传主题(二选一)
- **方式 A(后台上传)**:先把 PHP 上传限制调到 ≥30M(宝塔/面板的 PHP 设置,或 `.user.ini`:`upload_max_filesize=32M` + `post_max_size=32M`)→ 外观 → 主题 → 添加 → 上传主题 → 选 `hesu.zip` → 现在安装
- **方式 B(FTP/文件管理器)**:解压 hesu.zip → 把 `hesu` 目录上传到 `wp-content/themes/hesu` → 外观 → 主题 → 找到 HESU → 启用
### Step 4 — 激活(自动完成的事)
点击"启用"后主题自动播种,**无需任何手动导入**:
- 创建 9 个页面(首页/四大业务/全球布局/关于我们/发展历程/联系)+ 全部内容与图片入库(约 97 张媒体)
- 创建 4 篇示例新闻 + 4 个分类 + 菜单(主导航/页脚,含 Mega Menu 卡片)+ HESU Inquiry 表单
- 把站点首页设为 Home(设置 → 阅读 里自动配置好)
### Step 5 — 部署后验证清单(5 分钟)
- [ ] 首页:数字滚动、四大业务磁贴、区域轮播可拖拽、Partner 自动轮播、新闻 4 卡
- [ ] 全球布局 `/global-presence/`:滚轮一屏一翻、导航高亮
- [ ] 关于我们 `/about-us/`:滚动视屏动画(标语淡入、logo 揭示)
- [ ] 新闻 `/news/`:Tab 切换、点进详情页、上一篇/下一篇
- [ ] 联系 `/contact/`:表单空提交显示红校验、地图与联系信息展示
- [ ] 悬停导航 Business/About Us:Mega Menu 展开(4 卡/2 卡)
- [ ] 手机宽度:汉堡抽屉菜单开合
### Step 6 — 站点配置(后台可改项)
| 位置 | 配置内容 |
|---|---|
| 外观 → 自定义 → HESU Global | 社交链接 ×4(TikTok/Facebook/Instagram/WhatsApp,空则 `#`)、页脚标语、版权文字、新闻页 banner 图 |
| 外观 → 自定义 → 站点身份 | Logo(不传则用主题内置 logo.png) |
| 联系 → Contact Form 7 → HESU Inquiry → 邮件 | 收件人改为真实邮箱(默认站长邮箱) |
| 设置 → 常规 | 站点标题/副标题/时区 |
**发信建议**:生产主机若没配邮件(多数虚拟主机 PHP mail() 不可靠),安装 WP Mail SMTP 类插件配置 SMTP,否则表单提交后管理员收不到通知(前台的成功/失败提示样式不依赖发信,但业务上收不到信=没线索)。
### Step 7 — 替换示例内容
- 4 篇新闻为占位示例(后台 → 新闻,可编辑/删除/新发;删空某分类会显示 "Coming soon" 空态,属正常设计)
- 页面文案/图片:后台 → 页面 → 任一页面,区块结构已锁定,点文字/图片直接改
- ⚠️ 不要"解锁"任何区块(解锁=破坏页面结构);管理员权限虽可解锁,修复需到 外观 → HESU Tools 重跑 seed(会覆盖所有页面内容)
---
## 三、已有站点安装(警告)
主题的激活播种**会把站点首页切换为新建的 Home 页**,并创建 9 个新页面/菜单/文章——适合全新站。若必须装到已有站点:
1. **先完整备份**(数据库 + 文件)
2. 最好先在临时域名/子目录演练一遍
3. 激活后到 设置 → 阅读 检查首页设置是否符合预期;多余的 seed 内容可手动删除(页面/新闻/菜单,媒体库图片可保留)
## 四、运维注意事项
### 主题升级与内容更新
**zip 覆盖安装 / FTP 覆盖主题目录 = 只更新代码**。数据库里已播种的页面/新闻/菜单内容**不会**被改动(内容是激活或重播种时写入数据库的,与主题文件分离)。
| 升级类型 | 是否重跑 seed | 说明 |
|---|---|---|
| 纯代码优化版(性能修复、CSS/JS 调整、本次优化版等) | **否** | 覆盖主题文件即生效,页面内容无需动 |
| 静态稿改版后的新版主题 | **是**(readme Changelog 会注明) | 需到 外观 → HESU Tools 重跑 seed 才能看到新版页面内容(seed markup 与 render.php 一起更新过);改版同步按 `docs/superpowers/plans/2026-08-17-static-v2-sync-report.md` 的模式(render.php + seed + 重播种),**不要直接改线上的 post_content** |
重跑 seed = **恢复出厂内容**:你在后台对预置页面/新闻/菜单做过的修改会被覆盖。执行前会自动导出预置内容备份(见下方"备份")。
### 日常
- **重跑 seed**:外观 → HESU Tools → 重新创建预置内容。会**覆盖全部 seed 页面内容**(有确认弹窗);执行前**清空回收站**(回收站里的预置页不会被识别复用,会产生重复页)。你后台改过的文案会被还原。
- **主题目录不可删改**:媒体库里的 seed 图片是激活时从主题目录复制的副本,但 CSS 引用约 100 张图直接读主题 `image/` 目录——删除主题=样式崩。
- **子页面必须设特色图**:Mega Menu 卡片图取子页面特色图,无图则显示灰色空占位。
### 备份
- **数据库定期备份**:seed 内容 + 你后续的后台修改**全部存在数据库里**——用主机快照或 UpdraftPlus 类插件定期备份;主题 zip 本身就是代码备份,库丢了内容才真丢。
- **reseed 自动备份**:每次在 HESU Tools 执行"重新创建演示内容",执行前自动导出预置内容快照(9 个页面含正文 + 全部 seed 新闻 + Primary/Footer 菜单结构,JSON 格式)到 `wp-content/uploads/hesu-backups/`,**保留最近 5 份**,旧文件自动清理。该目录已自动放置 `.htaccess` 拒绝 web 直读(Apache 生效)+ 空 `index.php`;**nginx 不识别 .htaccess**,建议在站点配置额外加一条:
```nginx
location ^~ /wp-content/uploads/hesu-backups/ { deny all; }
```
---
## 五、上线检查单(安全加固)
以下为 Step 6 站点配置的强化项,**正式对外上线前逐条确认**:
- [ ] **CF7 反垃圾(必配)**:设置 → Contact Form 7 → Integrate(集成)→ 配置 reCAPTCHA(invisible v2 或 v3),或安装蜜罐类反垃圾插件(如 "Contact Form 7 Honeypot")。**实测默认表单可被脚本无限提交**——不配则上线后会被垃圾提交灌爆、真实询盘被淹没。
- [ ] **装 Flamingo**:Contact Form 7 同作者官方配套插件(插件库搜 "Flamingo")。每次表单提交**存库一份**,防 SMTP 抖动/邮件丢失导致丢单——没收到邮件时后台还能找回。
- [ ] **SMTP 发信**:WP Mail SMTP 类插件配置真实 SMTP 账号(对应 Step 6 的发信建议)。PHP `mail()` 在多数主机上不可靠,上线后的询盘通知全靠这一步。
- [ ] **关闭 XML-RPC / 收紧 REST users**:堵住登录名枚举与 xmlrpc 放大攻击。可用安全插件(Wordfence 等),或把以下片段粘贴到代码片段插件(推荐 WPCode,主题升级不受影响)或子主题 functions.php:
```php
// 关闭 XML-RPC(防 xmlrpc.php 暴力破解 / pingback 放大)
add_filter( 'xmlrpc_enabled', '__return_false' );
// 未登录请求隐藏 REST users 端点(防 /wp/v2/users 枚举登录名)
add_filter( 'rest_endpoints', function ( $endpoints ) {
if ( ! is_user_logged_in() ) {
unset( $endpoints['/wp/v2/users'], $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
} );
```
更彻底的做法是在 web 服务器层直接封禁 `xmlrpc.php`(返回 403)。
---
## 六、回滚
- 只删内容:外观 → HESU Tools 重跑(恢复出厂内容)
- 整站回滚:切换回其它主题(如二〇二五默认主题)→ 删除 HESU 主题;seed 页面/新闻/媒体保留在库中可手动清理