# 管理端宝塔部署指南(无 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 ``` ### 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 ```