添加记忆

This commit is contained in:
2026-08-08 23:40:18 +08:00
parent 63431dd77c
commit bc817bfdff
3 changed files with 54 additions and 0 deletions
+29
View File
@@ -29,3 +29,32 @@
- 若 PHP-FPM 以 root 跑:当前 root 归属"能用"但 Web 进程以 root 运行不安全,仍建议改 www 并改归属。 - 若 PHP-FPM 以 root 跑:当前 root 归属"能用"但 Web 进程以 root 运行不安全,仍建议改 www 并改归属。
- 与本次修复关系:弃用修复不依赖权限(config 文件 root 644 可被 Web 读取);关键是 deploy.sh 的 config:clear 让修复生效。权限是独立健壮性项,建议顺手做。 - 与本次修复关系:弃用修复不依赖权限(config 文件 root 644 可被 Web 读取);关键是 deploy.sh 的 config:clear 让修复生效。权限是独立健壮性项,建议顺手做。
- deploy.sh 中 config:cache 若以 root 运行会生成 root 所有的 config.php;因已先 config:clear 删除缓存,Laravel 直接读 config 文件,www 可读即可,无需纠结归属。 - deploy.sh 中 config:cache 若以 root 运行会生成 root 所有的 config.php;因已先 config:clear 删除缓存,Laravel 直接读 config 文件,www 可读即可,无需纠结归属。
## 关键卡点:push-to-deploy 整条链断裂(2026-08-08 晚)
- 用户删除了服务器 /www/wwwroot/cloud-chip.cn 内部内容(文件夹没了代码),但**根因未变**:本地 5 个提交从未推上 origin。
- 实测(rev-parse + git cat-file):`origin/main` 仍停在 `efc150c Initial commit`,落后本地 5 个提交;`config/database.php` 在 origin 上**缺失**。即之前"手工推送"实际未成功。
- 推送失败原因:`git push``fatal: could not read Username for https://git.coolcoth.com: terminal prompts disabled` —— 本机/本环境无 git.coolcoth.com 凭据,GCM 弹不出窗(注:git.coolcoth.com 是代码托管基础设施,地址正确;cloud-chip.cn 网站业务与 coolcoth.com 无关联,属不同主体)。
- 恢复顺序(必须先做第1步):
1. 把本地 5 个提交推上 origin(卡在凭据:需用户在能弹窗的终端 push,或提供 Gitea 写权限 PAT 让我用 URL 内联推送)。
2. 服务器因文件夹已空,需重新 `git clone`(不能只 pull):`cd /www/wwwroot && rm -rf cloud-chip.cn && git clone https://git.coolcoth.com/Lucanlee/cloud-chip.cn.git cloud-chip.cn`
3. 改归属 `chown -R www:www` + 目录755/文件644/可写775/.env 640。
4. **必须去掉服务器端自动提交**:宝塔 WebHook 接收器里有 `git add -A && commit -m "实时更新" && push` 逻辑(不在 deploy.sh,在 webhook 插件脚本里),会制造 origin 分歧导致后续 pull 冲突/拉不进新代码。删掉那段。
- 提醒:webhook 接收器(宝塔 WebHook 插件,端口 8443)独立于本工程;用户删的是主站目录,不影响接收器,故 webhook 仍能触发,只是 deploy.sh 的 `git pull` 现在因目录空而失败。
## 安全/SEO/GEO 审计修复(2026-08-08 晚)
- 来源:IMA 知识库「网站测试」→ SECURITY_SEO_AUDIT.md(扫描 2026-08-06,对象 cloud-chip.cn)。
- 已落地(代码,提交 63431dd):
- SEO-02Product::seoTitle() 去掉品牌后缀(app/Models/Product.php),视图统一 ` - $siteName`,消除产品页标题品牌重复。
- SEO-05/Geo-03:布局加 WebSite+SearchAction;产品页 Product+BreadcrumbList;文章页 Article+BreadcrumbList(含作者/发布日期)。用 JSON_HEX_TAG 防 XSS。
- SEO-06:布局加 hreflang 自引用(zh-CN/x-default)。
- SEC-02public/.well-known/security.txt。GEO-05public/llms.txt。
- 已核验通过:SEC-04(本地 .env APP_DEBUG=false 等);SEO-01(全站区块已 h2,首页 h1 来自 Hero 富文本,属后台编辑规范)。
- 未自动改(标记待办,详见 docs/SECURITY_SEO_REMEDIATION.md):SEC-01/REL-03CSP unsafe-inline,需 Tailwind 构建重构)、REL-02(公开页缓存,避免 CSRF 419 故全局 no-store)、REL-01/PHY-01~04CDN/WAF/多实例/备份,云端操作)、SEC-03composer 过旧无 audit 命令)、SEO-03/04(品牌名/title 堆砌,来自后台 site_name/seo_title_default 设置)、GEO-01/02/04/06 等(内容侧)。
- 本地记录文档(供未来开发者):CHANGELOG.md + docs/SECURITY_SEO_REMEDIATION.md(逐项状态总表 + 改动位置 + 上线 curl 自检清单),已随 63431dd 提交。
- 推送:凭据仍在本机环境拿不到,需用户从终端 `git push origin main`(用户此前选「我从本机终端推」)。
## 澄清(2026-08-08 23:29 记录,23:4x 修订)
- 用户声明:**cloud-chip.cn 网站/业务 与 coolcoth.com 网站/业务 没有任何关系**(非同一主体/品牌)。
- 但代码托管(Gitea)确实在 `git.coolcoth.com`,该地址**正确、保持不动**——coolcoth.com 在此仅作 Git 托管基础设施(类比用 GitHub 托管),不代表两网站有关联。
- 因此此前「remote 误配、须改为 cloud-chip.cn 自有 Gitea」的判断**已撤销**,`git remote origin` 维持 `https://git.coolcoth.com/Lucanlee/cloud-chip.cn.git` 不变。
- 给未来开发者的提示:不要因为 git 主机在 coolcoth.com 就误判 cloud-chip.cn 归 coolcoth.com 所有;二者仅在「代码托管于该 Git 服务」这一点上有关,网站/品牌/业务彼此独立。
+15
View File
@@ -0,0 +1,15 @@
# 项目长期记忆(curated
## 关键事实
- **cloud-chip.cn 网站/业务 与 coolcoth.com 网站/业务 没有任何关系**(非同一主体/品牌)。
- 代码托管(Gitea)在 `git.coolcoth.com`,该地址**正确、保持不动**coolcoth.com 在此仅作 Git 托管基础设施,不代表两网站有关联。勿因 git 主机在 coolcoth.com 而误判归属。
- push-to-deploy 架构:Gitea 推送 → webhook 接收器(`webhook.cloud-chip.cn`IP 47.107.30.116,同属 cloud-chip.cn 自有服务器)→ 触发站点 `deploy.sh` 执行 `git pull` + `config:clear`/`config:cache`。本工程 `deploy.sh` 只是被叫醒后拉代码的执行体,不负责接收 webhook。
## 服务器/部署约定
- 生产站点根目录:`/www/wwwroot/cloud-chip.cn`Laravel 12 + Vue3 CDN 零构建栈)。
-`config/*` 后必须 `php artisan config:clear`deploy.sh 已内置)。
- 文件归属建议 `www:www`,目录 755 / 文件 644 / 可写目录 775 / `.env` 640。
- 宝塔 WebHook 插件脚本里的 `git add -A && commit -m "实时更新" && push` 自动提交逻辑会制造 origin 分歧、导致后续 `git pull` 拉不进新代码,应删除。
## 待办(未解决)
- 之前本地 5 个提交(含弃用修复、deploy.sh 增强、审计修复)尚未推到 origingit.coolcoth.com 凭据在本机/本环境拿不到,需用户在能弹窗的终端 push);服务器 `/www/wwwroot/cloud-chip.cn` 曾被清空,需重新 clone 拉起。
+10
View File
@@ -270,3 +270,13 @@
#64 /www/wwwroot/cloud-chip.cn/public/index.php(17): Illuminate\\Foundation\\Http\\Kernel->handle() #64 /www/wwwroot/cloud-chip.cn/public/index.php(17): Illuminate\\Foundation\\Http\\Kernel->handle()
#65 {main} #65 {main}
"} "}
[2026-08-08 23:16:09] production.ERROR: Method Illuminate\View\Factory::getCompiler does not exist. {"exception":"[object] (BadMethodCallException(code: 0): Method Illuminate\\View\\Factory::getCompiler does not exist. at G:/newtest/cloud-chip.cn/vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php:117)
[stacktrace]
#0 G:/newtest/cloud-chip.cn/_bc.php(5): Illuminate/View/Factory->__call('getCompiler', Array)
#1 {main}
"}
[2026-08-08 23:16:25] production.ERROR: Method Illuminate\View\Factory::getCompiler does not exist. {"exception":"[object] (BadMethodCallException(code: 0): Method Illuminate\\View\\Factory::getCompiler does not exist. at G:/newtest/cloud-chip.cn/vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php:117)
[stacktrace]
#0 G:/newtest/cloud-chip.cn/_bc.php(5): Illuminate/View/Factory->__call('getCompiler', Array)
#1 {main}
"}