抚顺数字档案馆系统从零部署与配置实操指南

一、基础运行环境初始化

在开始部署抚顺数字档案馆系统之前,必须确保服务器基础环境符合运行标准。本系统基于Spring Boot与Vue.js前后端分离架构,依赖JDK 11、Node.js 14及以上版本。以下操作基于CentOS 7.9系统演示。

1. 安装JDK 11环境

首先卸载系统自带的OpenJDK,避免版本冲突,然后安装Oracle JDK 11。

执行以下命令:

```bash 查询并卸载原有JDK rpm -qa | grep java yum remove -y java-1.8.0-openjdk 创建安装目录 mkdir -p /usr/local/java cd /usr/local/java 下载JDK 11 (假设使用wget,若无wget请先yum install wget) wget https://download.oracle.com/java/11/latest/jdk-11_linux-x64_bin.tar.gz 解压 tar -zxvf jdk-11_linux-x64_bin.tar.gz 配置环境变量 echo 'export JAVA_HOME=/usr/local/java/jdk-11.0.16' >> /etc/profile echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile source /etc/profile 验证安装 java -version ```

2. 安装Node.js环境

前端构建工具依赖Node.js,推荐使用NVM管理版本或直接下载二进制包。

```bash 下载Node 16.x二进制包 cd /usr/local wget https://nodejs.org/dist/v16.20.0/node-v16.20.0-linux-x64.tar.xz 解压 tar -xvf node-v16.20.0-linux-x64.tar.xz 建立软链接 ln -s /usr/local/node-v16.20.0-linux-x64/bin/node /usr/bin/node ln -s /usr/local/node-v16.20.0-linux-x64/bin/npm /usr/bin/npm 验证 node -v npm -v ```

二、中间件容器化部署

系统依赖MySQL 8.0、Redis 6.0、MinIO(对象存储)及Elasticsearch(全文检索)。为了保证环境一致性,推荐使用Docker Compose一键编排。

1. 安装Docker及Docker Compose

```bash yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io 启动Docker systemctl start docker systemctl enable docker 安装Docker Compose curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ```

2. 编写Docker Compose编排文件

在服务器目录/opt/fushun-archives/middleware下创建docker-compose.yml文件。此配置包含了数据库、缓存、文件存储及搜索引擎的完整配置。

```yaml version: '3.8' services: MySQL数据库 mysql: image: mysql:8.0 container_name: fushun_mysql environment: MYSQL_ROOT_PASSWORD: Fushun@2024404 MYSQL_DATABASE: fushun_archives TZ: Asia/Shanghai ports: - "3306:3306" volumes: - ./mysql/data:/var/lib/mysql - ./mysql/conf/my.cnf:/etc/mysql/my.cnf command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci Redis缓存 redis: image: redis:6.2-alpine container_name: fushun_redis ports: - "6379:6379" volumes: - ./redis/data:/data command: redis-server --appendonly yes --requirepass "Redis@Fushun2024" MinIO对象存储 minio: image: minio/minio:latest container_name: fushun_minio environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: Minio@Fushun2024 ports: - "9000:9000" - "9001:9001" volumes: - ./minio/data:/data command: server /data --console-address ":9001" Elasticsearch全文检索 elasticsearch: image: elasticsearch:7.17.5 container_name: fushun_es environment: - discovery.type=single-node - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - ELASTIC_PASSWORD=Fushun@Es2024 ports: - "9200:9200" volumes: - ./es/data:/usr/share/elasticsearch/data ```

3. 启动中间件服务

执行启动命令:

```bash cd /opt/fushun-archives/middleware docker-compose up -d ```

等待约30秒,执行docker-compose ps确保所有服务状态均为Up

三、后端应用配置与启动

假设后端源码已解压至/opt/fushun-archives/backend。本步骤重点在于修改配置文件以适配上述中间件环境。

1. 修改数据库连接配置

编辑src/main/resources/application-prod.yml文件,替换数据源配置。

```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/fushun_archives?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false username: root password: Fushun@2024404 redis: host: 127.0.0.1 port: 6379 password: Redis@Fushun2024 database: 0 ```

2. 配置文件存储与全文检索

抚顺数字档案馆系统从零部署与配置实操指南

在同一配置文件中追加MinIO及ES配置。

```yaml MinIO配置 minio: endpoint: http://127.0.0.1:9000 accessKey: minioadmin secretKey: Minio@Fushun2024 bucketName: fushun-docs Elasticsearch配置 elasticsearch: rest: uris: http://127.0.0.1:9200 username: elastic password: Fushun@Es2024 ```

3. 编译打包与启动

使用Maven进行编译打包,并通过Shell脚本启动。

```bash cd /opt/fushun-archives/backend 跳过测试打包 mvn clean package -Dmaven.test.skip=true 启动脚本 nohup java -jar -Xms1g -Xmx2g \ -Dspring.profiles.active=prod \ target/fushun-archives-backend.jar \ > /opt/fushun-archives/logs/backend.log 2>&1 & 查看启动日志 tail -f /opt/fushun-archives/logs/backend.log ```

当控制台输出Started FushunArchivesApplication in x.xxx seconds时,表示后端启动成功。

四、前端静态资源部署

前端采用Vue.js开发,需编译为静态资源并使用Nginx进行反向代理。

1. 编译前端项目

```bash cd /opt/fushun-archives/frontend 安装依赖 npm install --registry=https://registry.npmmirror.com 修改生产环境接口地址 编辑 .env.production 文件,确保 VUE_APP_BASE_API = 'http://你的服务器IP:8080' 构建 npm run build ```

构建完成后,dist目录即为静态资源。

2. 安装并配置Nginx

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

编辑Nginx配置文件/etc/nginx/nginx.conf,覆盖为以下内容:

```nginx user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; ; http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; server { listen 80; server_name localhost; 前端静态资源根目录 root /opt/fushun-archives/frontend/dist; index index.html; 解决Vue Router History模式刷新404问题 location / { try_files $uri $uri/ /index.html; } 后端接口反向代理 location /prod-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; } 文件预览代理(MinIO) location /minio/ { proxy_pass http://127.0.0.1:9000/; } } } ```

3. 启动Nginx服务

```bash 检查配置文件语法 nginx -t 启动Nginx systemctl start nginx systemctl enable nginx ```

五、系统初始化与验证

完成上述部署后,最后一步是进行系统初始化验证,确保所有模块通信正常。

1. 导入基础数据

登录MySQL容器,执行初始化SQL脚本(通常位于后端源码的sql目录下)。

```bash docker exec -i fushun_mysql mysql -uroot -pFushun@2024404 fushun_archives < /opt/fushun-archives/backend/sql/fushun_init.sql ```

2. 访问系统与功能自检

打开浏览器,访问http://你的服务器IP

  • 登录验证:使用默认管理员账号admin / 123456登录(请以实际项目文档为准)。
  • 档案上传测试:进入“档案管理”模块,上传一份测试PDF文件。检查MinIO控制台(http://IP:9001)是否有新增文件。
  • 全文检索测试:上传完成后,在全局搜索框输入文件名或文件内容关键词,检查Elasticsearch是否返回结果。

3. 常见启动故障排查

如果无法访问,请按以下顺序排查:

  • 防火墙未关闭:执行systemctl stop firewalld临时关闭,或放行80、8080端口。
  • 后端连不上DB:检查application-prod.yml中密码是否包含特殊字符且未转义,建议使用单引号包裹密码。
  • 前端白屏:按F12查看Network,确认静态资源404还是接口500。通常是Nginx中root路径配置错误。
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统