
























侠客岛论坛 Rhex 安全更新教程
适用场景:手动下载 GitHub 仓库 ZIP 包,通过宝塔/服务器手动更新
最后更新:2026-05-01
一、更新前准备(必须执行)
备份整个项目目录
cp -r /www/wwwroot/rhex /www/wwwroot/rhex_backup_$(date +%Y%m%d_%H%M%S)
备份数据库
pg_dump -U postgres rhex > /root/rhex_db_$(date +%Y%m%d_%H%M%S).sql
单独备份配置文件
cp /www/wwwroot/rhex/.env /root/rhex_env_backup.txt
记下备份目录的名称
ls -la /www/wwwroot/ | grep rhex_backup
二、停止服务
pm2 stop rhex-web rhex-worker
三、删除旧代码(保留 .env、addons、uploads)
cd /www/wwwroot/rhex
rm -rf src
rm -rf prisma
rm -rf public
rm -rf scripts
rm -rf docs
rm -rf .next
rm -f package.json
rm -f pnpm-lock.yaml
rm -f next.config.mjs
rm -f tsconfig.json
四、解压并部署新版本
进入项目目录
cd /www/wwwroot/rhex
解压已上传的压缩包(示例:Rhex-main.zip)
unzip Rhex-main.zip
将解压出的文件夹内容移动到根目录
mv Rhex-main/* ./
mv Rhex-main/.* ./ 2>/dev/null
删除空文件夹和压缩包
rm -rf Rhex-main
rm -f Rhex-main.zip
五、恢复配置
恢复 .env 文件
cp /root/rhex_env_backup.txt .env
确保目录存在
mkdir -p uploads addons
设置权限
chown -R www:www .env uploads addons 2>/dev/null
chmod 755 uploads addons
六、修改端口配置(重要)
sed -i ‘s/“start”: “next start”/“start”: “next start -p 10240”/’ package.json
七、安装依赖并更新数据库
安装依赖
pnpm install
生成 Prisma 客户端
npx prisma generate
同步数据库结构(重要!新版经常需要新增表)
npx prisma db push
重新构建
pnpm run build
八、重启服务并验证
启动服务
pm2 start rhex-web rhex-worker
保存 PM2 配置
pm2 save
查看日志确认正常
pm2 logs rhex-web --lines 30
检查端口监听
netstat -tlnp | grep 10240
测试本地访问
curl http://127.0.0.1:10240
九、浏览器测试
访问 https://xiakedao.hk0.cc 检查以下内容:
十、常见错误及解决方案
错误1:The table public.CustomPage does not exist
原因:新版数据库缺少表
解决:执行 npx prisma db push
错误2:DYNAMIC_SERVER_USAGE
原因:Next.js 构建问题
解决:rm -rf .next && pnpm run build
错误3:端口被占用(EADDRINUSE)
原因:10240 端口被占用
解决:netstat -tlnp | grep 10240 找到进程并 kill
错误4:pnpm install 很慢
解决:使用淘宝镜像
pnpm install --registry=https://registry.npmmirror.com
十一、如果更新失败,回滚操作
停止服务
pm2 stop rhex-web rhex-worker
删除新版本
rm -rf /www/wwwroot/rhex
恢复备份
cp -r /www/wwwroot/rhex_backup_* /www/wwwroot/rhex
重启服务
pm2 restart rhex-web rhex-worker
恢复数据库(如需)
psql -U postgres -d rhex < /root/rhex_db_备份文件名.sql
十二、关键注意事项
【必须保留的目录和文件】
├── .env # 配置文件
├── addons/ # 插件目录(绝对不能删)
└── uploads/ # 上传文件目录
【每次更新必须做的】
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。