零基础搭建企业级档案管理软件:从环境配置到上线部署全流程实操

环境准备与软件安装

操作系统与数据库选择

我们选择CentOS 7.6作为服务器操作系统,MySQL 8.0作为数据库。确保系统已更新:

系统更新命令:

```bash yum update -y ```

安装MySQL 8.0的官方仓库:

```bash wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm rpm -ivh mysql80-community-release-el7-3.noarch.rpm yum install mysql-community-server -y ```

启动MySQL并设置开机自启:

```bash systemctl start mysqld systemctl enable mysqld ```

获取初始密码:

```bash grep 'temporary password' /var/log/mysqld.log ```

使用初始密码登录后立即修改密码,并创建档案管理数据库:

```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!'; CREATE DATABASE archive_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ```

Web服务器与PHP环境部署

安装Nginx和PHP 7.4:

```bash yum install epel-release -y yum install nginx -y yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y yum install yum-utils -y yum-config-manager --enable remi-php74 yum install php php-fpm php-mysql php-gd php-mbstring php-xml -y ```

启动Nginx和PHP-FPM:

```bash systemctl start nginx systemctl start php-fpm systemctl enable nginx systemctl enable php-fpm ```

档案管理软件核心部署

软件获取与解压

我们使用开源档案管理软件"OpenArchive"作为示例。在Web目录下载并解压:

```bash cd /usr/share/nginx/html wget https://github.com/example/openarchive/releases/download/v2.1.0/openarchive-2.1.0.zip yum install unzip -y unzip openarchive-2.1.0.zip mv openarchive-2.1.0 archive chown -R nginx:nginx archive ```

Nginx站点配置

编辑Nginx配置文件:

```bash vi /etc/nginx/conf.d/archive.conf ```

写入以下完整配置:

```nginx server { listen 80; server_name your-domain.com; root /usr/share/nginx/html/archive; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } ```

测试配置并重启Nginx:

```bash nginx -t systemctl restart nginx ```

软件安装向导配置

通过浏览器访问服务器IP地址,进入安装界面。在数据库配置步骤填写:

  • 数据库主机:localhost
  • 数据库名:archive_db
  • 用户名:root
  • 密码:YourNewPassword123!
  • 表前缀:arc_(保持默认)

点击安装后,系统会自动创建46张数据表。安装完成后,立即删除install目录

```bash rm -rf /usr/share/nginx/html/archive/install ```

核心功能配置实操

档案分类体系建立

登录后台(默认地址:http://your-server-ip/admin),进入"分类管理":

  1. 点击"添加顶级分类"
  2. 输入分类名称:人事档案
  3. 设置分类编码:RS-001
  4. 保存后继续添加子分类:员工档案、合同档案、考核档案

分类编码规则建议:部门缩写+序号,如"RS-001"表示人事部第一类档案。

档案元数据字段自定义

进入"字段管理",为"员工档案"分类添加自定义字段:

  • 字段名称:员工工号
  • 字段类型:文本(单行)
  • 是否必填:
  • 验证规则:/^[A-Z]{2}\d{6}$/(2位字母+6位数字)

继续添加其他字段:入职日期(日期类型)、部门(下拉选择)、岗位级别(数字类型)。

档案上传与存储配置

修改配置文件设置存储路径:

```bash vi /usr/share/nginx/html/archive/config/storage.php ```

修改以下配置项:

```php 'local' => [ 'driver' => 'local', 'root' => '/data/archive_files', 'permissions' => [ 'file' => [ 'public' => 0644, 'private' => 0600, ], 'dir' => [ 'public' => 0755, 'private' => 0700, ], ], ], ```

创建存储目录并设置权限:

```bash mkdir -p /data/archive_files chown -R nginx:nginx /data/archive_files chmod -R 755 /data/archive_files ```

在后台"系统设置"→"上传设置"中:

  • 单文件大小限制:设置为50MB
  • 允许的文件类型:pdf,doc,docx,xls,xlsx,jpg,png
  • 存储位置:选择"本地存储"

用户权限精细化管理

角色与权限组创建

进入"用户管理"→"角色管理",创建三个基础角色:

  1. 档案管理员:可管理所有档案,但不能修改系统设置
  2. 部门主管:只能查看和管理本部门档案
  3. 普通员工:只能查看个人相关档案

为"档案管理员"角色分配权限时,勾选以下核心权限

  • 档案:添加、编辑、删除、查看
  • 借阅:审批、管理
  • 统计:查看所有统计报表

部门级权限控制实现

在"部门管理"中创建部门结构后,编辑"部门主管"角色的权限设置:

进入权限编辑页面,找到"档案查看权限",选择"按部门控制"。

零基础搭建企业级档案管理软件:从环境配置到上线部署全流程实操

在代码层面,系统通过以下SQL实现部门过滤:

```sql SELECT FROM arc_documents WHERE department_id IN ( SELECT department_id FROM user_departments WHERE user_id = :current_user_id ) ```

其中:current_user_id是当前登录用户的ID。

数据备份与安全加固

自动化备份脚本配置

创建备份脚本:

```bash vi /root/archive_backup.sh ```

写入以下内容:

```bash !/bin/bash BACKUP_DIR="/backup/archive" DATE=$(date +%Y%m%d_%H%M%S) MYSQL_USER="root" MYSQL_PASSWORD="YourNewPassword123!" DATABASE="archive_db" 创建备份目录 mkdir -p $BACKUP_DIR/$DATE 备份数据库 mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD $DATABASE > $BACKUP_DIR/$DATE/database.sql 备份上传文件 cp -r /data/archive_files $BACKUP_DIR/$DATE/ 备份程序文件(排除缓存和日志) tar -czf $BACKUP_DIR/$DATE/code.tar.gz --exclude="storage/logs" --exclude="storage/framework/cache" /usr/share/nginx/html/archive 删除7天前的备份 find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \; echo "Backup completed at $(date)" >> /var/log/archive_backup.log ```

设置脚本权限并添加到定时任务:

```bash chmod +x /root/archive_backup.sh crontab -e ```

添加以下行(每天凌晨2点执行备份):

```bash 0 2 /root/archive_backup.sh ```

安全加固措施

修改PHP配置文件提高安全性:

```bash vi /etc/php.ini ```

修改以下关键参数:

```ini expose_php = Off max_execution_time = 30 max_input_time = 60 memory_limit = 128M post_max_size = 52M upload_max_filesize = 50M disable_functions = exec,passthru,shell_exec,system ```

重启PHP-FPM使配置生效:

```bash systemctl restart php-fpm ```

配置Nginx限制访问频率,在archive.conf的server段添加:

```nginx limit_req_zone $binary_remote_addr zone=archive:10m rate=10r/s; location /admin { limit_req zone=archive burst=20 nodelay; auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; } ```

创建管理员认证文件:

```bash htpasswd -c /etc/nginx/.htpasswd admin ```

常见问题排查

文件上传失败处理

如果上传文件时出现"413 Request Entity Too Large"错误,需要修改Nginx配置:

```bash vi /etc/nginx/nginx.conf ```

在http段添加:

```nginx client_max_body_size 50m; ```

重启Nginx:

```bash systemctl restart nginx ```

数据库连接错误解决

检查MySQL是否允许远程连接(如果应用和数据库分离部署):

```sql CREATE USER 'archive_user'@'%' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON archive_db. TO 'archive_user'@'%'; FLUSH PRIVILEGES; ```

修改MySQL配置文件允许远程连接:

```bash vi /etc/my.cnf ```

找到[mysqld]段,确保有以下行:

```ini bind-address = 0.0.0.0 ```

重启MySQL服务:

```bash systemctl restart mysqld ```

性能优化配置

启用OPcache加速PHP:

```bash vi /etc/php.d/10-opcache.ini ```

修改为以下配置:

```ini opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 ```

配置Nginx缓存静态文件,在archive.conf中添加:

```nginx location ~ \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; add_header Cache-Control "public, immutable"; } ```

完成以上所有步骤后,你的企业级档案管理软件已经可以投入生产使用。定期检查备份日志,监控系统资源使用情况,根据实际业务需求调整权限设置和存储策略。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统