零基础搭建企业级获奖证书档案管理系统全流程可落地实操指南

一、前置环境准备

1.1 软硬件要求

硬件最低配置:2核4G内存、50G磁盘存储,支持Windows Server 2019+/CentOS 7+/Ubuntu 20.04+系统。软件依赖固定版本:Node.js 18.17.1 LTS、MySQL 8.0.34、Redis 6.x。

1.2 依赖安装

Windows系统直接下载对应安装包双击安装:
Node.js下载地址:https://nodejs.org/dist/v18.17.1/node-v18.17.1-x64.msi
MySQL下载地址:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.34-winx64.msi
Redis下载地址:https://github.com/tporadowski/redis/releases/download/v5.0.14.1/Redis-x64-5.0.14.1.msi
Ubuntu/Debian系统执行以下命令一键安装:

``` sudo apt update && sudo apt install -y nodejs npm mysql-server redis-server ```

CentOS/RedHat系统执行以下命令一键安装:

``` sudo yum install -y nodejs npm mysql-server redis ```

1.3 数据库初始化

安装完成后登录MySQL,执行以下完整SQL脚本完成库表和初始账号创建,可直接复制运行:

``` CREATE DATABASE certificate_manage DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE certificate_manage; CREATE TABLE `certificate_info` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', `cert_name` varchar(128) NOT NULL COMMENT '证书名称', `winner_name` varchar(64) NOT NULL COMMENT '获奖人/单位名称', `award_level` varchar(32) NOT NULL COMMENT '奖项等级', `issue_time` date NOT NULL COMMENT '颁发时间', `issue_org` varchar(128) NOT NULL COMMENT '颁发机构', `cert_file` varchar(256) NOT NULL COMMENT '证书文件存储路径', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_winner` (`winner_name`), KEY `idx_issue_time` (`issue_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='获奖证书主表'; CREATE TABLE `user_info` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '用户ID', `username` varchar(32) NOT NULL COMMENT '登录账号', `password` varchar(64) NOT NULL COMMENT '加密密码', `role` tinyint NOT NULL DEFAULT '2' COMMENT '1管理员 2普通用户', PRIMARY KEY (`id`), UNIQUE KEY `uk_username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户表'; -- 初始化管理员账号 密码默认123456 INSERT INTO `user_info` (`username`, `password`, `role`) VALUES ('admin', '$2a$10$EixZaY3s7vjRjMRC/.R6/.tG8g5aX86uF7mJfQ7eQ7eQ7eQ7eQ7eQ', 1); ```

二、系统核心配置

2.1 配置文件编写

创建项目目录,在目录下新建config.js文件,以下为完整可直接复制的配置内容,仅需修改MySQL密码和文件存储路径即可:

``` // config.js 系统核心配置 module.exports = { port: 3000, mysql: { host: '127.0.0.1', port: 3306, user: 'root', password: '替换为你的MySQL root密码', database: 'certificate_manage' }, redis: { host: '127.0.0.1', port: 6379, password: '' }, jwtSecret: 'cert_manage_2024_secure_key_@987', fileUploadPath: '/data/cert_files' // Windows系统替换为D:\\cert_files } ```

必须提前手动创建fileUploadPath对应的目录,否则证书上传会直接失败

2.2 依赖包安装

在项目目录下执行以下命令安装所有后端依赖,复制即可运行:

``` npm install express mysql2 redis jsonwebtoken bcryptjs multer cors ```

三、功能模块部署

3.1 后端服务启动

零基础搭建企业级获奖证书档案管理系统全流程可落地实操指南

项目入口文件编写完成后,可直接执行`node app.js`启动服务,如需后台常驻运行,先安装pm2进程管理工具:

``` npm install -g pm2 ```

安装完成后执行以下命令启动服务并设置开机自启:

``` pm2 start app.js --name cert-manage pm2 save pm2 startup ```

3.2 前端页面部署

前端打包完成后,将dist目录上传到服务器,配置Nginx反向代理,以下为完整可复制的Nginx配置:

``` server { listen 80; server_name 替换为你的服务器IP或域名; root /usr/share/nginx/html/cert/dist; index index.html; 接口反向代理 location /api/ { proxy_pass http://127.0.0.1:3000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } 证书文件访问配置 location /cert_files/ { alias /data/cert_files/; add_header Content-Disposition "inline"; } } ```

配置完成后执行`nginx -t`验证语法,无误后执行`nginx -s reload`生效

四、功能验证测试

4.1 登录验证

访问http://你的服务器IP,输入初始管理员账号admin、密码123456,成功进入系统首页即为部署正常。

4.2 核心功能测试

  • 证书上传测试:点击新增证书,填写所有必填字段,上传jpg/png/pdf格式文件,单文件默认上限10MB,提交后查看证书列表是否正常展示
  • 检索测试:支持按获奖人、奖项等级、颁发时间范围组合查询,验证返回结果是否匹配录入内容
  • 权限测试:新增普通用户,验证普通用户仅可查询、不可编辑删除证书的权限规则是否生效

五、日常运维操作

5.1 自动备份配置

创建自动备份脚本backup.sh,以下为完整可复制内容,仅需修改MySQL密码即可:

``` !/bin/bash backup_path="/data/cert_backup" mkdir -p ${backup_path} date_str=$(date +%Y%m%d%H%M%S) 备份数据库 mysqldump -u root -p替换为你的MySQL密码 certificate_manage > ${backup_path}/cert_db_${date_str}.sql 备份证书文件 tar -zcf ${backup_path}/cert_file_${date_str}.tar.gz /data/cert_files 删除7天前的旧备份 find ${backup_path} -mtime +7 -name ".sql" -o -name ".tar.gz" | xargs rm -f ```

执行`chmod +x /data/backup_cert.sh`给脚本添加执行权限,否则定时任务无法运行。添加定时任务,每天凌晨2点自动执行:

``` crontab -e 新增一行内容 0 2 /bin/bash /data/backup_cert.sh ```

5.2 故障排查

出现异常时优先查看三类日志定位问题:

  • 后端服务日志:执行`pm2 logs cert-manage`查看接口报错信息
  • Nginx日志:查看`/var/log/nginx/error.log`定位访问、上传类问题
  • MySQL日志:查看`/var/log/mysql/error.log`定位数据库操作异常
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统