自贡数字档案馆系统全栈环境搭建与部署实操详解

一、基础运行环境安装与配置

本指南基于CentOS 7.9 64位操作系统,采用Spring Boot 2.7 + Vue 2.6 + MySQL 8.0 + Redis 6.0 + MinIO架构进行搭建。请确保服务器已连接网络,并拥有root权限。

1. 安装JDK 1.8环境

自贡数字档案馆系统后端依赖Java 8环境。执行以下命令进行安装:

```bash 创建安装目录 mkdir -p /usr/local/java cd /usr/local/java 下载JDK 1.8安装包(如果下载失败,请手动上传jdk-8u371-linux-x64.tar.gz) wget https://download.oracle.com/otn-pub/java/jdk/8u371-b11/1f16b43686de4fb88a02b7bea4e7430d/jdk-8u371-linux-x64.tar.gz?AuthParam=1684425678_5d8e8b5c5d8e8b5c -O jdk-8u371-linux-x64.tar.gz 解压 tar -zxvf jdk-8u371-linux-x64.tar.gz 配置环境变量 echo 'export JAVA_HOME=/usr/local/java/jdk1.8.0_371' >> /etc/profile echo 'export JRE_HOME=${JAVA_HOME}/jre' >> /etc/profile echo 'export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib' >> /etc/profile echo 'export PATH=${JAVA_HOME}/bin:$PATH' >> /etc/profile 刷新配置 source /etc/profile 验证安装 java -version ```

2. 安装MySQL 8.0数据库

执行以下命令安装MySQL服务:

```bash 下载并安装MySQL Yum Repository wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm rpm -ivh mysql80-community-release-el7-7.noarch.rpm 安装MySQL Server yum install mysql-server -y 启动MySQL并设置开机自启 systemctl start mysqld systemctl enable mysqld 获取临时 root 密码 grep 'temporary password' /var/log/mysqld.log ```

使用获取到的临时密码登录MySQL,并修改密码为Zigong@2024(请根据实际需求修改):

```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zigong@2024'; -- 创建专用数据库 CREATE DATABASE zigong_archive_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 创建远程访问用户 CREATE USER 'zigong_admin'@'%' IDENTIFIED BY 'Zigong@2024'; GRANT ALL PRIVILEGES ON zigong_archive_db. TO 'zigong_admin'@'%'; FLUSH PRIVILEGES; ```

3. 安装Redis缓存服务

```bash 安装EPEL源 yum install epel-release -y 安装Redis yum install redis -y 修改配置文件,设置访问密码和绑定IP sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/' /etc/redis.conf sed -i 's/^ requirepass foobared/requirepass "ZigongRedis2024"/' /etc/redis.conf 启动Redis systemctl start redis systemctl enable redis ```

4. 安装MinIO对象存储

用于存储档案电子文件(PDF、OFD等):

```bash 下载MinIO Server wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio mv minio /usr/local/bin/ 创建数据目录 mkdir -p /data/minio 启动MinIO (AccessKey: minioadmin, SecretKey: minioadmin) nohup minio server /data/minio --address :9000 --console-address :9001 > /data/minio/minio.log 2>&1 & ```

二、数据库结构设计与初始化

登录MySQL数据库,执行以下SQL脚本建立核心表结构。请在终端执行:mysql -u zigong_admin -pZigong@2024 zigong_archive_db,然后粘贴以下内容:

```sql -- 档案案卷表 CREATE TABLE `archive_volume` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `volume_code` varchar(50) NOT NULL COMMENT '案卷号', `title` varchar(255) NOT NULL COMMENT '题名', `fonds_id` int(11) DEFAULT NULL COMMENT '全宗号', `retention_period` varchar(20) DEFAULT NULL COMMENT '保管期限', `security_level` varchar(20) DEFAULT NULL COMMENT '密级', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `creator` varchar(50) DEFAULT NULL COMMENT '创建人', PRIMARY KEY (`id`), UNIQUE KEY `uk_volume_code` (`volume_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='档案案卷表'; -- 档案文件表 CREATE TABLE `archive_file` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `volume_id` bigint(20) NOT NULL COMMENT '所属案卷ID', `file_name` varchar(255) NOT NULL COMMENT '文件名', `file_type` varchar(10) DEFAULT NULL COMMENT '文件类型(pdf/ofd)', `file_size` bigint(20) DEFAULT NULL COMMENT '文件大小(字节)', `file_path` varchar(500) DEFAULT NULL COMMENT 'MinIO存储路径', `md5_hash` varchar(32) DEFAULT NULL COMMENT '文件MD5值', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间', PRIMARY KEY (`id`), KEY `idx_volume_id` (`volume_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='档案文件表'; -- 插入初始化测试数据 INSERT INTO `archive_volume` (`volume_code`, `title`, `fonds_id`, `retention_period`, `creator`) VALUES ('2023-A001', '自贡市2023年度城市建设重点项目档案', '001', '永久', 'admin'); ```

三、后端核心服务搭建

后端采用Spring Boot + MyBatis Plus架构。创建项目目录结构并初始配置文件。

1. Maven依赖配置 (pom.xml)

创建文件pom.xml,完整内容如下:

```xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.14 com.zigong.archive zigong-archive-system 1.0.0 1.8 3.5.3.1 8.5.2 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-validation com.baomidou mybatis-plus-boot-starter ${mybatis-plus.version} mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-data-redis io.minio minio ${minio.version} org.projectlombok lombok true org.springframework.boot spring-boot-maven-plugin ```

2. 应用配置文件

src/main/resources目录下创建application.yml

```yaml server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/zigong_archive_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: zigong_admin password: Zigong@2024 redis: host: 127.0.0.1 port: 6379 password: ZigongRedis2024 database: 0 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0 MinIO配置 minio: endpoint: http://127.0.0.1:9000 accessKey: minioadmin secretKey: minioadmin bucketName: zigong-archive ```

3. 核心业务代码实现

自贡数字档案馆系统全栈环境搭建与部署实操详解

创建启动类ZigongArchiveApplication.java

```java package com.zigong.archive; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.zigong.archive.mapper") public class ZigongArchiveApplication { public static void main(String[] args) { SpringApplication.run(ZigongArchiveApplication.class, args); } } ```

创建实体类ArchiveVolume.java

```java package com.zigong.archive.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import java.time.LocalDateTime; @Data public class ArchiveVolume { @TableId(type = IdType.AUTO) private Long id; private String volumeCode; private String title; private Integer fondsId; private String retentionPeriod; private String securityLevel; private LocalDateTime createTime; private String creator; } ```

创建Mapper接口ArchiveVolumeMapper.java

```java package com.zigong.archive.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zigong.archive.entity.ArchiveVolume; import org.apache.ibatis.annotations.Mapper; @Mapper public interface ArchiveVolumeMapper extends BaseMapper { } ```

创建控制器ArchiveController.java,提供档案查询接口:

```java package com.zigong.archive.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zigong.archive.entity.ArchiveVolume; import com.zigong.archive.mapper.ArchiveVolumeMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/api/archive") public class ArchiveController { @Autowired private ArchiveVolumeMapper volumeMapper; @GetMapping("/list") public List list(@RequestParam(required = false) String title) { QueryWrapper wrapper = new QueryWrapper<>(); if (title != null && !title.isEmpty()) { wrapper.like("title", title); } return volumeMapper.selectList(wrapper); } } ```

四、前端管理界面开发

前端使用Vue 2.6 + Element UI + Axios进行开发。确保已安装Node.js 14+环境。

1. 项目初始化

```bash 安装Vue CLI npm install -g @vue/cli 创建项目 vue create zigong-archive-web 选择默认配置 (Default ([Vue 2] babel, eslint)) 进入目录并安装依赖 cd zigong-archive-web npm install element-ui axios ```

2. 配置Axios与路由

src/main.js中引入Element UI和Axios:

```javascript import Vue from 'vue' import App from './App.vue' import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import axios from 'axios'; Vue.use(ElementUI); Vue.prototype.$http = axios; // 配置后端API地址 axios.defaults.baseURL = 'http://127.0.0.1:8080'; Vue.config.productionTip = false new Vue({ render: h => h(App), }).$mount('app') ```

3. 编写档案列表页面

修改src/App.vue,实现档案查询列表功能:

```html ```

五、Nginx部署与系统联调

1. 编译打包后端与前端

在后端项目根目录执行:

```bash mvn clean package -DskipTests 生成的jar包位于 target/zigong-archive-system-1.0.0.jar ```

在前端项目根目录执行:

```bash npm run build 生生静态文件位于 dist 目录 ```

2. 安装并配置Nginx

```bash yum install nginx -y ```

编辑Nginx配置文件/etc/nginx/nginx.conf,替换server块内容:

```nginx server { listen 80; server_name localhost; 前端静态资源 location / { root /root/zigong-archive-web/dist; 请修改为实际的前端dist路径 index index.html; try_files $uri $uri/ /index.html; } 后端API代理 location /api/ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } ```

启动Nginx并

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统