根据学校规模选择对应配置,所有配置均可直接满足3年使用需求:
本文基于CentOS7系统操作,其他发行版可对应调整包管理命令,全程使用root账号操作:
第一步:安装基础依赖包,执行命令:
``` yum install -y python38 python38-devel mysql57-server nginx gcc wget ```第二步:初始化MySQL,执行命令:
``` systemctl enable --now mysqld 查看初始默认密码 grep "temporary password" /var/log/mysqld.log 登录MySQL,替换下方的初始密码 mysql -uroot -p'初始默认密码' 执行以下SQL修改root密码、创建档案库,替换自定义密码为你设置的8位以上含大小写、数字、特殊字符的密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义MySQL密码'; CREATE DATABASE school_archive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; exit ```第三步:启动Nginx服务,执行命令:
``` systemctl enable --now nginx ```本文使用经过教育场景适配的开源学校档案系统,直接下载稳定版安装包,执行命令:
``` cd /opt wget https://github.com/opensource-school/school-archive-system/releases/download/v1.2.0/school-archive-v1.2.0.tar.gz tar -zxvf school-archive-v1.2.0.tar.gz cd school-archive-v1.2.0 安装Python依赖 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ```打开配置文件conf/settings.py,替换以下内容,可直接复制修改:
``` 允许访问的地址,填学校域名或服务器IP,全放开可填[''] ALLOWED_HOSTS = ['你的学校域名/服务器IP'] 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'school_archive', 'USER': 'root', 'PASSWORD': '你之前设置的MySQL自定义密码', 'HOST': '127.0.0.1', 'PORT': 3306, } } 最大上传附件大小设置为100M FILE_UPLOAD_MAX_MEMORY_SIZE = 104857600 ```第一步:初始化系统数据,执行命令:
``` python3 manage.py makemigrations python3 manage.py migrate 创建超级管理员账号,按提示输入用户名、密码、邮箱即可 python3 manage.py createsuperuser ```第二步:配置系统后台服务,创建/etc/systemd/system/archive.service文件,内容如下:
``` [Unit] Description=School Archive System After=network.target mysql.target [Service] User=root WorkingDirectory=/opt/school-archive-v1.2.0 ExecStart=/usr/bin/python3 manage.py runserver 0.0.0.0:8000 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target ```第三步:启动服务并配置Nginx反向代理,执行命令:
``` systemctl daemon-reload systemctl enable --now archive ```
创建/etc/nginx/conf.d/archive.conf文件,内容如下:
``` server { listen 80; server_name 你的学校域名/服务器IP; client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ```验证Nginx配置并重载:
``` nginx -t systemctl reload nginx ```此时访问服务器IP/域名,输入之前创建的超级管理员账号即可登录后台,部署完成。
登录后台后进入「系统设置-档案分类」模块,按照学校实际需求添加分类,推荐配置如下,每个分类可自定义必填字段:
进入「系统设置-角色管理」模块,新增以下4个默认角色,按需绑定对应用户即可:
注意:所有普通角色默认关闭删除权限,避免档案误删丢失。
进入「档案管理-批量导入」模块,按以下步骤操作:
注意:单附件大小不可超过50M,仅支持PDF、JPG、PNG、ZIP四种格式,导入前先备份数据库避免错误数据污染。
配置自动备份策略,创建/data/backup目录,新建备份脚本/data/backup/backup.sh,内容如下:
``` !/bin/bash 备份数据库 mysqldump -uroot -p'你的MySQL自定义密码' school_archive > /data/backup/archive_db_$(date +%Y%m%d).sql 备份附件 tar -zcvf /data/backup/archive_file_$(date +%Y%m%d).tar.gz /opt/school-archive-v1.2.0/media 删除7天前的备份文件 find /data/backup -mtime +7 -name ".sql" -o -name ".tar.gz" | xargs rm -f ```添加定时任务,执行crontab -e,新增一行:
``` 0 2 /bin/bash /data/backup/backup.sh ```设置完成后每天凌晨2点自动备份,备份保留7天。
ALTER TABLE student ADD INDEX idx_student_no (student_no);
ALTER TABLE teacher ADD INDEX idx_teacher_no (teacher_no);
UPDATE auth_user SET password = 'pbkdf2_sha256$260000$UQr1pVgYbN3X7Z9A$2yX5vL9nM7qR1tP8wO0eE4rT6yU8iO0pA2sD4fG6hJ8kL0zX2cV4bN6m' WHERE username = '你的管理员用户名';