部署前,请确保你的服务器或本地开发环境满足以下最低要求。我们将以CentOS 7.6为例,其他Linux发行版命令略有不同。
使用SSH连接到你的服务器,执行以下命令检查系统版本和资源:
cat /etc/redhat-release 查看系统版本
free -h 查看内存,建议至少2GB
df -h 查看磁盘空间,建议至少20GB可用
更新系统并安装基础编译工具:
yum update -y
yum groupinstall -y "Development Tools"
yum install -y wget vim unzip
档案管理系统后端通常基于Java,这里安装OpenJDK 11:
yum install -y java-11-openjdk java-11-openjdk-devel
安装后验证版本:
java -version
如果输出包含"openjdk version "11.0.x",则安装成功。
我们使用MySQL 5.7作为数据存储。首先添加MySQL官方仓库:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql-community-server
启动MySQL并设置开机自启:
systemctl start mysqld
systemctl enable mysqld
获取初始密码并修改:
grep 'temporary password' /var/log/mysqld.log
使用获取的密码登录:
mysql -u root -p
登录后立即修改密码(将'YourNewPassword123!'替换为你的强密码):
```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!'; FLUSH PRIVILEGES; ```
假设我们部署的是基于Spring Boot的档案管理系统。从项目发布页面下载最新版本:
wget https://github.com/example/archive-system/releases/download/v2.1.0/archive-system-2.1.0.jar
mkdir -p /opt/archive-system
mv archive-system-2.1.0.jar /opt/archive-system/
在MySQL中为系统创建专用数据库和用户:
```sql CREATE DATABASE archive_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'archive_user'@'localhost' IDENTIFIED BY 'Archive@Pass123'; GRANT ALL PRIVILEGES ON archive_db. TO 'archive_user'@'localhost'; FLUSH PRIVILEGES; ```
创建应用配置文件:
vim /opt/archive-system/application.yml
将以下内容粘贴到文件中,根据实际情况修改数据库连接信息:
```yaml server: port: 8080 servlet: context-path: /archive spring: datasource: url: jdbc:mysql://localhost:3306/archive_db?useUnicode=true&characterEncoding=utf-8&useSSL=false username: archive_user password: Archive@Pass123 driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true archive: storage: path: /data/archive/files max-file-size: 100MB ```
保存并退出(按ESC,输入:wq,回车)。
创建档案文件存储目录并设置权限:
mkdir -p /data/archive/files
chmod 755 /data/archive
chown -R nobody:nobody /data/archive
为了让系统在服务器重启后自动运行,创建Systemd服务:
vim /etc/systemd/system/archive.service
输入以下内容:
```ini [Unit] Description=Archive Management System After=network.target mysqld.service [Service] Type=simple User=nobody WorkingDirectory=/opt/archive-system ExecStart=/usr/bin/java -jar /opt/archive-system/archive-system-2.1.0.jar --spring.config.location=/opt/archive-system/application.yml SuccessExitStatus=143 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target ```
重新加载Systemd并启动服务:
systemctl daemon-reload
systemctl start archive.service
systemctl enable archive.service
检查服务状态:
systemctl status archive.service
如果看到"active (running)"字样,说明服务已成功启动。
检查应用日志确认启动正常:

tail -f /opt/archive-system/logs/application.log
在浏览器中访问系统:
http://你的服务器IP:8080/archive
如果看到登录页面,说明部署成功。
为系统提供Web服务和SSL加密:
yum install -y nginx
创建Nginx配置文件:
vim /etc/nginx/conf.d/archive.conf
输入以下配置,将your-domain.com替换为你的域名:
```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost: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; proxy_set_header X-Forwarded-Proto $scheme; } 限制上传文件大小 client_max_body_size 100M; } ```
使用Certbot获取免费SSL证书:
yum install -y certbot python3-certbot-nginx
certbot --nginx -d your-domain.com
按照提示完成证书申请和安装。
systemctl restart nginx
systemctl enable nginx
现在可以通过https://your-domain.com访问系统。
首次访问系统,使用默认管理员账户登录:
登录后立即修改密码。
在系统管理界面,按以下步骤创建档案分类:
如果已有历史档案数据,可以通过Excel模板批量导入:
创建自动备份脚本:
vim /opt/backup-archive.sh
输入以下内容:
```bash !/bin/bash BACKUP_DIR="/backup/archive" DATE=$(date +%Y%m%d_%H%M%S) DB_NAME="archive_db" mkdir -p $BACKUP_DIR mysqldump -u archive_user -p'Archive@Pass123' $DB_NAME > $BACKUP_DIR/${DB_NAME}_${DATE}.sql find $BACKUP_DIR -name ".sql" -mtime +7 -delete ```
设置执行权限并添加到定时任务:
chmod +x /opt/backup-archive.sh
crontab -e
添加以下行(每天凌晨2点备份):
0 2 /opt/backup-archive.sh
配置日志自动轮转,防止日志文件过大:
vim /etc/logrotate.d/archive
输入以下配置:
``` /opt/archive-system/logs/.log { daily rotate 30 compress delaycompress missingok notifempty create 644 nobody nobody } ```
创建健康检查脚本:
vim /opt/health-check.sh
输入以下内容:
```bash !/bin/bash 检查服务状态 if systemctl is-active --quiet archive.service; then echo "服务运行正常" else echo "服务异常,尝试重启..." systemctl restart archive.service fi 检查磁盘空间 DISK_USAGE=$(df -h /data | awk 'NR==2 {print $5}' | sed 's/%//') if [ $DISK_USAGE -gt 90 ]; then echo "磁盘使用率超过90%,请及时清理" fi ```
设置定时执行:
chmod +x /opt/health-check.sh
echo "/30 /opt/health-check.sh" >> /etc/crontab