上次错误

This commit is contained in:
2026-08-08 16:26:31 +08:00
parent 8101177cb5
commit ba660d0c57
50 changed files with 1250 additions and 1326 deletions
@@ -0,0 +1,71 @@
# 圣巧依官网 ── 切换 coolcoth.comApache → Nginx)部署说明
> 适用:把原 `st-joyapparel.com` 站点迁移到新域名 `coolcoth.com`,并将 Web 服务由 Apache 切换为 Nginx(宝塔环境)。
> 联系邮箱保持 `service@st-joyapparel.com`(同属圣巧依公司,未随域名变更)。
---
## 一、本次改动清单(相对原 st-joyapparel.com 代码)
| 文件 | 改动内容 | 是否需上传替换 |
|---|---|---|
| `nginx/coolcoth.com.conf` | **新增**Nginx 完整站点配置(http→https、www 规范、伪静态、安全头、acme) | ✅ 新增(参考/直接用作站点配置) |
| `app/Core/Helper.php` | `apply_security_headers()` 改为只输出动态 CSP;通用安全头(HSTS 等)移交 Nginx 层下发,避免重复头 | ✅ 替换 |
| `public/robots.txt` | Sitemap 地址改为 `https://coolcoth.com/sitemap.xml` | ✅ 替换 |
| `robots.txt`(项目根) | 同上 | ✅ 替换 |
| `public/user.ini` | 会话目录改为 `/www/php_session/coolcoth.com/` | ✅ 替换 |
| `app/Core/Theme.php` | 联系邮箱(保持 `service@st-joyapparel.com`,未改) | ❌ 无需替换 |
| `install/seed.php` | 联系邮箱(保持 `service@st-joyapparel.com`,未改) | ❌ 无需替换 |
| `.htaccess` / `public/.htaccess` | Apache 规则,Nginx 下不生效,保留无害 | ❌ 无需替换 |
> 因站点功能(路由、SEO、后台)基于请求域名自动生成 URL`site_url()` / `absolute_url()`),
> **除上方显式列出的硬编码点外,其余代码无需改动即可适配新域名**。
---
## 二、宝塔 Nginx 部署步骤
1. **DNS 解析**`coolcoth.com``www.coolcoth.com` 均 A 记录指向阿里云 ECS 公网 IP。
2. **建站**:宝塔 → 网站 → 新建站点 `coolcoth.com`(同时添加 `www.coolcoth.com`),
- Web 服务:**Nginx**
- **运行目录 = `/public`**
3. **站点配置**
- 方式 A(推荐):网站 → 设置 → **配置文件**,整体替换为 `nginx/coolcoth.com.conf` 中的 `server` 块;
- 方式 B:只把文件「伪静态区」内容粘到「**伪静态**」框,再用「设置 → 重定向」开启 https + www 跳转。
- ⚠️ 修改 `fastcgi_pass``php-cgi-74.sock` 为你服务器实际 PHP 版本(如 `php-cgi-80.sock` / `php-cgi-82.sock`)。
4. **SSL**:网站 → SSL → Let's Encrypt**勾选 `coolcoth.com``www.coolcoth.com`** → 申请并开启「强制 HTTPS」。
5. **上传代码**:把整站代码传到 `/www/wwwroot/coolcoth.com/`(运行目录为 `public/`),
并用本包内的 `app/Core/Helper.php``public/robots.txt``robots.txt``public/user.ini` 覆盖对应文件。
6. **建会话目录**:服务器上创建 `/www/php_session/coolcoth.com/` 并赋予 PHP 进程写权限(与 `user.ini` 中路径一致)。
---
## 三、安全头分工(重要)
- **通用头**HSTS / X-Frame-Options / X-Content-Type-Options / Referrer-Policy / Permissions-Policy 等):
由 Nginx 在服务器层用 `add_header ... always` 统一下发,**覆盖静态资源**,不依赖 PHP。
- **严格 CSP**(含每次请求随机 nonce):由 PHP `Helper::apply_security_headers()``public/index.php` 入口下发。
- 二者不再重复,行为与原 Apache 环境一致。
---
## 四、验证
- `http://coolcoth.com` / `https://coolcoth.com` / `https://www.coolcoth.com` 均应 301/200 收敛到 `https://www.coolcoth.com`
- 首页、产品、新闻、后台 `/admin` 正常;`/sitemap.xml` 可访问。
- 用夸克浏览器测试(新域名未被旧拦截规则影响)。
- 浏览器 F12 → Network 查看响应头含 `Strict-Transport-Security``Content-Security-Policy``X-Frame-Options` 等。
---
## 五、WWW 策略说明
当前配置延续原 Apache 的「强制 www」策略(所有访问跳到 `www.coolcoth.com`)。
若希望以裸域 `coolcoth.com` 为主,删除 `nginx/coolcoth.com.conf` 中 80 server 的 `www.` 前缀,
以及 443 server 内对 `$host` 的 www 跳转即可。
---
## 六、旧域名
`st-joyapparel.com` 若不再使用,请在 DNS / 阿里云释放;其服务器目录可保留或清理。