ai-clone/admin/宝塔部署指南.md

194 lines
3.2 KiB
Markdown
Raw Normal View History

2026-03-05 14:29:21 +08:00
# 管理端宝塔部署指南(无 Nginx 方案)
## 方案 1使用 Node.js 运行(推荐)
### 步骤 1本地构建
```bash
cd e:\ai-clone\ai-clone\admin
npm run build
```
### 步骤 2上传到服务器
将整个 `admin` 目录上传到服务器,例如:
```
/www/wwwroot/admin-frontend/
```
### 步骤 3在服务器安装依赖
```bash
cd /www/wwwroot/admin-frontend
npm install
npm install -g serve
```
### 步骤 4使用 serve 运行
```bash
serve -s dist -l 20002
```
### 步骤 5配置 PM2 守护进程(保持运行)
```bash
# 安装 PM2
npm install -g pm2
# 启动服务
pm2 serve dist 20002 --name admin-frontend --spa
# 保存配置
pm2 save
# 设置开机自启
pm2 startup
```
### 步骤 6开放端口
在宝塔面板 -> 安全 -> 放行端口:`20002`
---
## 方案 2使用 Python SimpleHTTPServer
### 步骤 1上传 dist 目录
将构建后的 `dist` 目录上传到:
```
/www/wwwroot/admin-frontend/
```
### 步骤 2创建启动脚本
在服务器创建文件 `/www/wwwroot/admin-frontend/start.sh`
```bash
#!/bin/bash
cd /www/wwwroot/admin-frontend/dist
python3 -m http.server 20002
```
### 步骤 3赋予执行权限
```bash
chmod +x /www/wwwroot/admin-frontend/start.sh
```
### 步骤 4使用 PM2 运行
```bash
pm2 start /www/wwwroot/admin-frontend/start.sh --name admin-frontend
pm2 save
```
---
## 方案 3修改后端支持静态文件最简单
直接让 Spring Boot 后端同时提供管理端前端页面。
### 步骤 1构建前端
```bash
cd e:\ai-clone\ai-clone\admin
npm run build
```
### 步骤 2复制 dist 到后端
`dist` 目录下的所有文件复制到:
```
e:\ai-clone\ai-clone\ai-clone\src\main\resources\static\admin\
```
### 步骤 3访问
访问:`http://115.190.167.176:20002/admin/index.html`
但这样就不是 20002 端口了。
---
## 推荐配置(方案 1 - PM2 + serve
这是最稳定的方案,步骤如下:
### 1. 本地构建
```powershell
cd e:\ai-clone\ai-clone\admin
npm run build
```
### 2. 压缩 dist 目录
`dist` 目录压缩为 `dist.zip`
### 3. 上传到服务器
使用宝塔面板文件管理,上传到 `/www/wwwroot/`
### 4. 解压并创建目录
```bash
cd /www/wwwroot
mkdir admin-frontend
cd admin-frontend
unzip ../dist.zip
```
### 5. 安装 serve 和 PM2
```bash
npm install -g serve pm2
```
### 6. 启动服务
```bash
cd /www/wwwroot/admin-frontend
pm2 serve dist 20002 --name admin-frontend --spa
pm2 save
pm2 startup
```
### 7. 开放端口
宝塔面板 -> 安全 -> 添加端口规则:`20002`
### 8. 访问测试
浏览器访问:`http://115.190.167.176:20002`
---
## PM2 常用命令
```bash
# 查看运行状态
pm2 list
# 查看日志
pm2 logs admin-frontend
# 重启服务
pm2 restart admin-frontend
# 停止服务
pm2 stop admin-frontend
# 删除服务
pm2 delete admin-frontend
```
---
## 故障排查
### 1. 端口被占用
```bash
# 查看端口占用
netstat -tunlp | grep 20002
# 杀死进程
kill -9 <PID>
```
### 2. 防火墙未开放
```bash
# 检查防火墙
firewall-cmd --list-ports
# 开放端口
firewall-cmd --permanent --add-port=20002/tcp
firewall-cmd --reload
```
### 3. 页面刷新 404
使用 `--spa` 参数:
```bash
pm2 serve dist 20002 --spa --name admin-frontend
```