操作系统:Ubuntu 20.04 LTS
最低配置:2核CPU / 4GB内存 / 50GB硬盘
网络要求:公网IP或内网可访问地址
执行以下命令安装必需软件包:
``` sudo apt update sudo apt install -y nginx mysql-server php8.1 php8.1-fpm php8.1-mysql php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip ```登录MySQL创建数据库和用户:
``` mysql -u root -p ```在MySQL命令行中执行:
``` CREATE DATABASE dazhou_archive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'archive_user'@'localhost' IDENTIFIED BY 'YourStrongPassword123!'; GRANT ALL PRIVILEGES ON dazhou_archive. TO 'archive_user'@'localhost'; FLUSH PRIVILEGES; EXIT; ```使用wget下载最新版档案管理系统:
``` cd /var/www sudo wget https://github.com/dazhou-archive/archive-system/releases/download/v2.1.0/archive-system-v2.1.0.zip sudo unzip archive-system-v2.1.0.zip sudo mv archive-system-v2.1.0 dazhou-archive sudo chown -R www-data:www-data dazhou-archive ```创建Nginx配置文件:
``` sudo nano /etc/nginx/sites-available/dazhou-archive ```粘贴以下配置内容:
``` server { listen 80; server_name your-domain.com; 替换为你的域名或IP root /var/www/dazhou-archive/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } client_max_body_size 100M; 支持大文件上传 } ```启用站点并重启Nginx:
``` sudo ln -s /etc/nginx/sites-available/dazhou-archive /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx ```复制环境配置文件模板:
``` cd /var/www/dazhou-archive sudo cp .env.example .env sudo nano .env ```修改以下关键配置项:
``` APP_NAME="达州档案管理系统" APP_ENV=production APP_DEBUG=false APP_URL=http://your-domain.com DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=dazhou_archive DB_USERNAME=archive_user DB_PASSWORD=YourStrongPassword123! FILE_STORAGE_PATH=/var/www/dazhou-archive/storage/uploads MAX_UPLOAD_SIZE=104857600 ALLOWED_FILE_TYPES=pdf,doc,docx,xls,xlsx,jpg,jpeg,png,gif,tif,tiff ```执行密钥生成命令:
``` cd /var/www/dazhou-archive sudo php artisan key:generate ```运行数据库迁移命令:
``` sudo php artisan migrate --force ```导入基础数据:
``` sudo php artisan db:seed --class=BasicDataSeeder ```登录系统后台(默认地址:/admin),进入档案分类管理页面,按以下结构创建分类:
每个一级分类下可创建二级分类,如文书档案下可创建:
在用户管理页面创建以下角色和权限:
创建用户时必须设置强密码策略,密码长度不少于8位,包含大小写字母和数字。
进入模板管理,创建文书档案录入模板:
``` { "template_name": "文书档案标准模板", "fields": [ {"name": "档案编号", "type": "text", "required": true, "unique": true}, {"name": "文件标题", "type": "text", "required": true}, {"name": "文号", "type": "text", "required": true}, {"name": "发文单位", "type": "text", "required": true}, {"name": "收文单位", "type": "text", "required": true}, {"name": "文件日期", "type": "date", "required": true}, {"name": "密级", "type": "select", "options": ["公开", "内部", "秘密", "机密", "绝密"]}, {"name": "保管期限", "type": "select", "options": ["永久", "30年", "10年", "5年"]}, {"name": "主题词", "type": "text", "required": false}, {"name": "备注", "type": "textarea", "required": false} ] } ```1. 登录系统,点击档案录入
2. 选择对应的档案分类
3. 填写表单所有必填项
4. 上传电子文件(支持批量上传)
5. 点击保存并生成二维码
6. 打印二维码标签贴于实体档案盒
系统提供三种查询方式:
检索结果支持导出Excel格式:
``` 点击"导出"按钮 -> 选择导出范围 -> 选择Excel格式 -> 下载文件 ```1. 用户提交借阅申请,填写借阅事由和归还时间
2. 档案管理员收到审批通知
3. 管理员审批通过后,系统生成借阅单

4. 用户领取档案,管理员扫描二维码确认借出
5. 归还时再次扫描二维码完成归还登记
6. 系统自动记录借阅日志
创建备份脚本:
``` sudo nano /usr/local/bin/backup-archive.sh ```脚本内容:
``` !/bin/bash BACKUP_DIR="/var/backups/archive-system" DATE=$(date +%Y%m%d_%H%M%S) mysqldump -u archive_user -p'YourStrongPassword123!' dazhou_archive > $BACKUP_DIR/db_backup_$DATE.sql tar -czf $BACKUP_DIR/full_backup_$DATE.tar.gz /var/www/dazhou-archive find $BACKUP_DIR -type f -mtime +30 -delete ```设置定时任务:
``` sudo crontab -e ```添加以下行(每天凌晨2点执行):
``` 0 2 /usr/local/bin/backup-archive.sh ```查看系统操作日志:
``` tail -f /var/www/dazhou-archive/storage/logs/laravel.log ```设置日志轮转:
``` sudo nano /etc/logrotate.d/dazhou-archive ```添加配置:
``` /var/www/dazhou-archive/storage/logs/.log { daily missingok rotate 30 compress delaycompress notifempty create 640 www-data www-data sharedscripts postrotate kill -USR1 `cat /var/run/php/php8.1-fpm.pid 2>/dev/null` 2>/dev/null || true endscript } ```1. 备份当前系统
2. 进入系统目录:
``` cd /var/www/dazhou-archive ```3. 拉取更新代码:
``` sudo git pull origin main ```4. 更新依赖包:
``` sudo composer install --no-dev ```5. 执行数据库迁移:
``` sudo php artisan migrate --force ```6. 清理缓存:
``` sudo php artisan optimize:clear ```问题1:文件上传失败
检查Nginx配置中的client_max_body_size值
检查PHP配置中的upload_max_filesize和post_max_size
检查存储目录权限:
``` sudo chmod -R 775 /var/www/dazhou-archive/storage sudo chown -R www-data:www-data /var/www/dazhou-archive/storage ```问题2:数据库连接失败
检查MySQL服务状态:
``` sudo systemctl status mysql ```检查用户权限:
``` mysql -u archive_user -p -e "SHOW GRANTS;" ```问题3:二维码生成失败
安装GD库扩展:
``` sudo apt install php8.1-gd sudo systemctl restart php8.1-fpm ```启用OPcache加速PHP:
``` sudo nano /etc/php/8.1/fpm/php.ini ```修改以下配置:
``` opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=2 ```重启PHP服务:
``` sudo systemctl restart php8.1-fpm ```配置MySQL性能优化:
``` sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ```在[mysqld]部分添加:
``` innodb_buffer_pool_size = 1G innodb_log_file_size = 256M query_cache_type = 1 query_cache_size = 64M ```重启MySQL服务:
``` sudo systemctl restart mysql ```