宝塔面板部署指南

本指南介绍如何使用宝塔面板部署"录用通知-自助系统"的前后端服务。


📋 目录


什么是宝塔面板

宝塔面板是一款服务器管理软件,支持 Linux 和 Windows 系统,可以通过 Web 界面轻松管理服务器,无需编写复杂的命令。

官网: https://www.bt.cn/


宝塔面板的优势

优势 说明
🎨 可视化界面 无需 SSH,浏览器即可管理
📦 一键安装 一键安装 Nginx、MySQL、PHP 等
🔄 文件管理 在线文件编辑器,方便修改代码
📊 资源监控 实时查看 CPU、内存、磁盘使用情况
🔐 安全管理 防火墙、SSL 证书图形化配置
📝 日志查看 图形化查看各种日志
🚀 PM2 管理 内置 Node.js 项目管理功能

安装宝塔面板

1.1 连接服务器

使用 SSH 连接到你的服务器:

bash 复制代码
ssh root@你的服务器IP

1.2 安装宝塔面板

Ubuntu/Debian 系统:

bash 复制代码
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

CentOS 系统:

bash 复制代码
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh

安装完成后会显示以下信息:

复制代码
==================================================================
Congratulations! Installed successfully!
==================================================================
外网面板地址: http://你的服务器IP:8888/xxxxxxxx
内网面板地址: http://内网IP:8888/xxxxxxxx
username: xxxxxxxx
password: xxxxxxxx
==================================================================

⚠️ 重要:请保存好面板地址、用户名和密码!

1.3 登录宝塔面板

  1. 在浏览器中访问面板地址
  2. 输入用户名和密码登录
  3. 首次登录会提示安装"套件"
  4. 推荐安装 Nginx(暂不安装 MySQL,我们将使用 PostgreSQL)

步骤一:安装运行环境

1.1 安装 Node.js

  1. 登录宝塔面板
  2. 点击左侧菜单 【软件商店】
  3. 搜索 "Node.js"
  4. 选择 Node.js 版本管理器
  5. 点击 【安装】
  6. 安装完成后,点击 【设置】
  7. 安装 Node.js 18.x 版本(推荐)

1.2 安装 PostgreSQL 数据库

  1. 点击左侧菜单 【软件商店】
  2. 搜索 "PostgreSQL"
  3. 选择 PostgreSQL 14 或更高版本
  4. 点击 【安装】

1.3 安装 PM2 管理器

  1. 点击左侧菜单 【软件商店】
  2. 搜索 "PM2管理器"
  3. 点击 【安装】

步骤二:创建数据库

2.1 配置 PostgreSQL

  1. 点击左侧菜单 【软件商店】
  2. 找到已安装的 PostgreSQL ,点击 【设置】
  3. 点击 【服务】 确保服务正在运行
  4. 点击 【root密码】 设置数据库 root 密码

2.2 创建数据库和用户

  1. 点击 【PostgreSQL 设置】【数据库】
  2. 点击 【添加数据库】
  3. 填写以下信息:
配置项 填写内容
数据库名 acceptance_notices
用户名 notice_user
密码 自定义强密码(请记住!)
访问权限 本地服务器
  1. 点击 【提交】

步骤三:部署后端服务

3.1 上传代码到服务器

方式一:使用宝塔文件管理器(推荐)

  1. 点击左侧菜单 【文件】
  2. 进入 /www/wwwroot/ 目录
  3. 点击 【新建目录】 ,命名为 acceptance-notice
  4. 进入 acceptance-notice 目录
  5. 点击 【上传】 ,上传你的项目代码
    • 上传整个 backend 文件夹
    • 上传整个 frontend 文件夹

方式二:使用 Git(推荐)

  1. 进入 【终端】(宝塔面板左侧菜单)
  2. 执行以下命令:
bash 复制代码
cd /www/wwwroot
git clone https://你的仓库地址.git acceptance-notice

3.2 安装后端依赖

  1. 点击左侧菜单 【终端】
  2. 执行以下命令:
bash 复制代码
cd /www/wwwroot/acceptance-notice/backend
npm install

3.3 配置后端环境变量

  1. 【文件】 菜单中进入 /www/wwwroot/acceptance-notice/backend
  2. 新建文件 .env
  3. 点击 【编辑】,填入以下内容:
env 复制代码
# 服务器端口
PORT=4000

# 数据库连接(修改密码为刚才设置的密码)
DATABASE_URL=postgresql://notice_user:你的数据库密码@localhost:5432/acceptance_notices

# JWT 密钥(请修改为随机字符串)
JWT_SECRET=your_very_secure_random_jwt_secret_key_here

# 文件存储路径
STORAGE_ROOT=./storage

# 默认管理员账户(请修改)
ADMIN_DEFAULT_USERNAME=admin
ADMIN_DEFAULT_PASSWORD=your_secure_admin_password

# 字体配置
FONT_PATH=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
FONT_FAMILY_DEFAULT=DejaVu Sans
FONT_FAMILY_TITLE=DejaVu Sans

# 百度 OCR API 配置(需要去百度智能云申请)
BAIDU_APP_ID=your_baidu_app_id
BAIDU_API_KEY=your_baidu_api_key
BAIDU_SECRET_KEY=your_baidu_secret_key

# Nutrient SDK 配置(需要去 Nutrient 官网申请)
NUTRIENT_API_URL=https://api.nutrient.io
NUTRIENT_API_KEY=your_nutrient_api_key
NUTRIENT_DWS_VIEWER_API_URL=https://api.nutrient.io
NUTRIENT_DWS_VIEWER_API_KEY=your_nutrient_viewer_api_key
NUTRIENT_DWS_VIEWER_BASE_URL=https://cdn.nutrient.io/viewer/latest/
NUTRIENT_DWS_VIEWER_SCRIPT_URL=https://cdn.nutrient.io/viewer/latest/nutrient-viewer.js
  1. 保存文件

3.4 运行数据库迁移

  1. 【终端】 中执行:
bash 复制代码
cd /www/wwwroot/acceptance-notice/backend
npm run migrate

3.5 创建存储目录

  1. 【文件】 中进入 /www/wwwroot/acceptance-notice/backend
  2. 新建以下目录:
    • storage/templates
    • storage/generated
    • storage/temp

步骤四:部署前端服务

4.1 安装前端依赖

  1. 【终端】 中执行:
bash 复制代码
cd /www/wwwroot/acceptance-notice/frontend
npm install

4.2 修改前端 API 配置

检查前端代码中的 API 地址配置,如果有 localhost:4000 需要修改为实际的服务器地址。

通常在以下文件中:

  • src/api/index.js
  • src/config.js
  • vite.config.js

注意 :如果使用 Nginx 反向代理(推荐),前端可以保持使用相对路径 /api,不需要修改。

4.3 构建前端

  1. 【终端】 中执行:
bash 复制代码
cd /www/wwwroot/acceptance-notice/frontend
npm run build

构建完成后,会生成 dist 目录。


步骤五:配置网站和反向代理

5.1 创建网站

  1. 点击左侧菜单 【网站】
  2. 点击 【添加站点】
  3. 填写以下信息:
配置项 填写内容
域名 你的域名(如 example.com)或服务器 IP
备注 录用通知系统前端
根目录 /www/wwwroot/acceptance-notice/frontend/dist
PHP 版本 纯静态
创建数据库 不创建
  1. 点击 【提交】

5.2 配置前端网站

  1. 在网站列表中,找到刚创建的站点,点击 【设置】
  2. 点击 【配置文件】
  3. 修改配置如下(添加前端路由支持和静态资源缓存):
nginx 复制代码
location / {
    try_files $uri $uri/ /index.html;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}
  1. 点击 【保存】

5.3 创建后端 API 网站

  1. 点击左侧菜单 【网站】
  2. 点击 【添加站点】
  3. 填写以下信息:
配置项 填写内容
域名 api.你的域名 或使用同一个域名
备注 录用通知系统后端
根目录 /www/wwwroot/acceptance-notice/backend
PHP 版本 纯静态
创建数据库 不创建
  1. 点击 【提交】

5.4 配置后端反向代理

  1. 在网站列表中找到后端站点,点击 【设置】
  2. 点击 【反向代理】
  3. 点击 【添加反向代理】
  4. 填写以下信息:
配置项 填写内容
代理名称 acceptance-backend
目标 URL http://127.0.0.1:4000
发送域名 $host
  1. 点击 【提交】

5.5 配置反向代理高级选项

  1. 在刚创建的反向代理列表中,点击 【配置】
  2. 替换为以下配置:
nginx 复制代码
# PROXY-START/
location /
{
    proxy_pass http://127.0.0.1:4000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
}
# PROXY-END/

# 静态文件直接提供
location /files/ {
    alias /www/wwwroot/acceptance-notice/backend/storage/;
    expires 30d;
    add_header Cache-Control "public, immutable";
}
  1. 点击 【保存】

5.6 修改上传大小限制

  1. 在后端站点设置中,点击 【配置文件】
  2. server 块中添加:
nginx 复制代码
client_max_body_size 50M;
  1. 点击 【保存】

步骤六:配置 SSL 证书

6.1 使用 Let's Encrypt 免费证书(推荐)

  1. 在站点设置中,点击 【SSL】
  2. 选择 【Let's Encrypt】 选项卡
  3. 填写邮箱地址
  4. 勾选需要申请证书的域名
  5. 点击 【申请】
  6. 等待证书申请完成
  7. 开启 【强制 HTTPS】

6.2 手动上传证书(如有自己的证书)

  1. 在站点设置中,点击 【SSL】
  2. 选择 【其他证书】 选项卡
  3. 填写证书内容和密钥
  4. 点击 【保存】

步骤七:配置 PM2 守护进程

7.1 添加后端项目

  1. 点击左侧菜单 【软件商店】
  2. 找到 PM2管理器 ,点击 【设置】
  3. 点击 【添加项目】
  4. 填写以下信息:
配置项 填写内容
项目名称 acceptance-backend
运行目录 /www/wwwroot/acceptance-notice/backend
启动文件 src/server.js
项目端口 4000
运行模式 production
开机启动 勾选
  1. 点击 【提交】

7.2 添加前端项目(可选)

如果需要 PM2 管理 serve 静态文件服务:

  1. 在 PM2 管理器中,点击 【添加项目】
  2. 填写以下信息:
配置项 填写内容
项目名称 acceptance-frontend
运行目录 /www/wwwroot/acceptance-notice/frontend
启动文件 /www/wwwroot/acceptance-notice/node_modules/serve/bin/serve.js
启动参数 -s -l 3000 dist
项目端口 3000
运行模式 production
开机启动 勾选
  1. 点击 【提交】

注意:如果使用 Nginx 直接托管静态文件,可以不添加前端 PM2 项目。

7.3 查看 PM2 状态

  1. 在 PM2 管理器中,可以看到所有项目的运行状态
  2. 可以进行 【重启】【停止】【删除】 等操作
  3. 点击 【日志】 查看运行日志

常见问题

Q1: PM2 项目启动失败?

解决方法

  1. 检查 Node.js 版本是否正确
  2. 检查 .env 文件是否存在且配置正确
  3. 检查端口 4000 是否被占用
  4. 查看 PM2 日志:在 PM2 管理器中点击 【日志】

Q2: 前端页面 404?

解决方法

  1. 检查前端是否已构建:ls /www/wwwroot/acceptance-notice/frontend/dist
  2. 检查网站根目录是否正确
  3. 检查 Nginx 配置中的 try_files 规则

Q3: API 请求失败?

解决方法

  1. 检查后端 PM2 项目是否正在运行
  2. 检查反向代理配置是否正确
  3. 查看 Nginx 错误日志:网站设置 → 【日志】
  4. 检查防火墙是否开放了相关端口

Q4: 数据库连接失败?

解决方法

  1. 检查 PostgreSQL 服务是否运行
  2. 检查 .env 文件中的数据库连接字符串
  3. 确认数据库用户名和密码正确
  4. 确认数据库已创建

Q5: 上传文件失败?

解决方法

  1. 检查 Nginx 的 client_max_body_size 配置
  2. 检查存储目录权限:在宝塔文件管理器中,右键 storage 目录 → 【权限】 → 设置为 755
  3. 检查磁盘空间是否充足

Q6: SSL 证书申请失败?

解决方法

  1. 确保域名已正确解析到服务器 IP
  2. 确保防火墙开放了 80 和 443 端口
  3. 检查域名 DNS 配置是否正确
  4. 等待 DNS 生效(可能需要几分钟到几小时)

维护管理

日常操作

查看 PM2 项目状态
  1. 点击左侧菜单 【软件商店】
  2. 找到 PM2管理器 ,点击 【设置】
  3. 查看所有项目的运行状态
重启服务

方式一:在 PM2 管理器中操作

  1. 找到对应项目
  2. 点击 【重启】

方式二:使用终端

bash 复制代码
pm2 restart acceptance-backend
pm2 restart acceptance-frontend
查看日志

方式一:在 PM2 管理器中

  1. 找到对应项目
  2. 点击 【日志】

方式二:使用终端

bash 复制代码
pm2 logs acceptance-backend
pm2 logs acceptance-frontend
更新代码
  1. 【文件】 中更新代码文件
  2. 或在 【终端】 中执行 git pull
  3. 如果更新了后端代码,需要重新安装依赖:
bash 复制代码
cd /www/wwwroot/acceptance-notice/backend
npm install
pm2 restart acceptance-backend
  1. 如果更新了前端代码,需要重新构建:
bash 复制代码
cd /www/wwwroot/acceptance-notice/frontend
npm install
npm run build

备份数据

使用宝塔自动备份
  1. 点击左侧菜单 【计划任务】
  2. 添加备份数据库任务
  3. 添加备份网站任务
手动备份数据库

【终端】 中执行:

bash 复制代码
pg_dump -U notice_user acceptance_notices > backup_$(date +%Y%m%d).sql
手动恢复数据库
bash 复制代码
psql -U notice_user acceptance_notices < backup_20260120.sql

监控资源

  1. 点击左侧菜单 【监控】
  2. 查看系统资源使用情况
  3. 设置告警通知(可选)

宝塔面板常用功能

文件管理

  • 路径 : 左侧菜单 → 【文件】
  • 功能: 上传、下载、编辑、删除文件
  • 快捷键: 支持在线代码编辑器

终端

  • 路径 : 左侧菜单 → 【终端】
  • 功能: 执行 Linux 命令
  • 无需 SSH: 直接在浏览器中使用终端

防火墙

  • 路径 : 左侧菜单 → 【安全】
  • 功能: 配置防火墙规则
  • 建议开放端口: 22(SSH)、80(HTTP)、443(HTTPS)、8888(宝塔)

计划任务

  • 路径 : 左侧菜单 → 【计划任务】
  • 功能: 定时执行脚本、备份数据等
  • 示例:每天凌晨 2 点备份数据库

部署检查清单

部署完成后,请检查以下项目:

  • 宝塔面板已安装并可以访问
  • Node.js 18.x 已安装
  • PostgreSQL 已安装并运行
  • PM2 管理器已安装
  • 数据库已创建
  • 后端代码已上传并安装依赖
  • 后端 .env 文件已配置
  • 数据库迁移已执行
  • 前端代码已上传并构建
  • 前端网站已创建(Nginx)
  • 后端反向代理已配置
  • PM2 项目已添加并运行
  • SSL 证书已申请(生产环境)
  • 可以通过浏览器访问前端
  • API 请求正常工作
  • 文件上传功能正常
  • 数据库读写正常

安全建议

  1. 修改宝塔面板端口:默认 8888,建议修改为其他端口
  2. 绑定访问 IP:限制只能从特定 IP 访问面板
  3. 开启面板 SSL:使用 HTTPS 访问宝塔面板
  4. 定期备份数据:使用计划任务自动备份
  5. 更新系统和软件:保持软件为最新版本
  6. 监控资源使用:避免资源耗尽导致服务不可用
  7. 配置告警通知:在服务异常时及时收到通知

快速命令参考

虽然使用宝塔面板可以图形化操作,但了解一些常用命令也很有帮助:

bash 复制代码
# 查看 PM2 状态
pm2 status

# 重启所有 PM2 项目
pm2 restart all

# 查看 PM2 日志
pm2 logs

# 进入 PostgreSQL
sudo -u postgres psql

# 查看磁盘使用
df -h

# 查看内存使用
free -h

# 查看 Nginx 状态
systemctl status nginx

# 重启 Nginx
systemctl restart nginx

# 查看 Nginx 错误日志
tail -f /www/server/nginx/logs/error.log

获取帮助


宝塔部署指南版本: 1.0
最后更新: 2026-01-20

相关推荐
0思必得02 小时前
[Web自动化] Selenium中Select元素操作方法
前端·python·selenium·自动化·html
一叶星殇2 小时前
C# .NET 如何解决跨域(CORS)
开发语言·前端·c#·.net
运筹vivo@2 小时前
攻防世界: catcat-new
前端·web安全·php
阿雄不会写代码2 小时前
Let‘s Encrypt HTTPS 证书配置指南
前端·chrome
每天吃饭的羊2 小时前
hash结构
开发语言·前端·javascript
吃吃喝喝小朋友2 小时前
JavaScript异步编程
前端·javascript
Trae1ounG3 小时前
Vue生命周期
前端·javascript·vue.js
程序员小李白3 小时前
js数据类型详细解析
前端·javascript·vue.js