2.0 KiB
2.0 KiB
title, type, permalink, stable_id, scope, project_id, memory_type, status, revision, restored_from_commit, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | project_id | memory_type | status | revision | restored_from_commit | created_at | updated_at | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 生产部署与运维踩坑(宝塔/PM2/升级) | experience | main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/生产部署与运维踩坑宝塔-pm2-升级 | 2939ce96-a6f6-418a-9a70-568980dbdc2a | project | d44c219a-0b31-4de1-b160-323eb34a4c6a | experience | active | 1 | 6a6a895eaf |
2026-09-23T15:08:07.372480+00:00 | 2026-09-23T15:08:07.372574+00:00 |
|
- 宝塔“Node/PM2 项目”面板不会配置开机自启:只做
pm2 save不够,服务器重启后应用不在线(2026-09-03 续费重启后发生)。新服务器部署后必须pm2 startup systemd -u root --hp /root+pm2 save,并检查systemctl is-enabled pm2-root。resurrect 对在跑应用幂等。 - 服务器 MySQL 5.7 业务账号无 PROCESS 权限,
mysqldump必须加--no-tablespaces。 - 上传到 Linux 的 shell 脚本必须 LF 无 BOM(CRLF 会让 bash 报错);本机 ps1 正文用英文,读远端中文需
[Console]::OutputEncoding = UTF8。 - 升级包必须解压到线上目录之外;
upgrade.sh/ps1会拒绝根目录/同目录/互相嵌套路径,并校验部署哨兵与包完整性;部署目录勿用 NTFS Junction。 - 生产包启动报缺
.prisma/client/default:安装依赖后必须在 apps/api 执行prisma generate(init/upgrade 脚本已包含)。 - 安装向导建库:宝塔/云 DB 通常已预建库+账号,
ensureDatabase幂等跳过;自建 MySQL 业务账号需建库权限或填管理员账号,不自动 GRANT。 - 升级模式保留旧
.env,旧部署无SETTING_ENCRYPTION_KEY会回退 JWT_SECRET(无回归);Docker/remote 复用.deploy/deploy-secrets.json保证密钥稳定,否则旧数据因新随机密码连不上。 - 历史
appIconUrl若存/uploads/...URL,local→OSS 后可能指向旧路径;前端按所在端回退默认图标/admin/app-icon.svg、/trace/app-icon.svg。