在Linux服务器上部署档案管理软件,核心需求通常包括:支持多种格式文档(PDF、Office、图像)的集中存储、全文检索、权限控制、版本管理以及Web界面访问。基于开源、稳定及易维护原则,我们选择以下方案组合。
我们选用Mayan EDMS作为核心档案管理系统,其专为文档管理设计,功能完整。配合PostgreSQL数据库和Redis缓存,以保障系统性能与可靠性。
以下操作基于Ubuntu 22.04,其他发行版请调整包管理命令。
首先以root或具有sudo权限的用户登录服务器,执行系统更新并安装必要的编译工具和库。
```bash sudo apt update && sudo apt upgrade -y sudo apt install -y python3-pip python3-dev python3-venv libpq-dev libjpeg-dev libmagic1 gcc make redis-server nginx postgresql postgresql-contrib git ```为Mayan EDMS创建专用的数据库和用户。
```bash sudo -u postgres psql ```在PostgreSQL交互命令行中,依次执行以下SQL语句:
```sql CREATE DATABASE mayanedms; CREATE USER mayanuser WITH PASSWORD 'YourStrongPassword123!'; ALTER DATABASE mayanedms OWNER TO mayanuser; GRANT ALL PRIVILEGES ON DATABASE mayanedms TO mayanuser; ALTER ROLE mayanuser SET client_encoding TO 'utf8'; ALTER ROLE mayanuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE mayanuanager SET timezone TO 'UTC'; \q ```请务必将 `'YourStrongPassword123!'` 替换为高强度密码。
为安全起见,创建一个非特权系统用户来运行应用。
```bash sudo useradd -m -s /bin/bash mayan sudo passwd mayan 为此用户设置密码 ```切换到新创建的用户,并在其家目录下进行安装。
```bash sudo su - mayan cd /home/mayan python3 -m venv mayan-venv source mayan-venv/bin/activate pip install --upgrade pip pip install mayan-edms==4.4.3 ```使用mayan-edms.py命令初始化项目,这将在当前目录创建media和mayan目录。
初始化过程会提示创建超级用户,请记录下设置的用户名和密码。
编辑项目目录下的mayan/settings/production.py文件,配置数据库连接和密钥。
找到并修改以下配置段:
```python 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'mayanedms', 'USER': 'mayanuser', 'PASSWORD': 'YourStrongPassword123!', 替换为你的密码 'HOST': 'localhost', 'PORT': '5432', } } 设置一个强密钥 SECRET_KEY = '生成一个不少于50位的随机字符串,可用命令 openssl rand -base64 40 生成' 允许访问的域名/IP,按需修改 ALLOWED_HOSTS = ['your_server_ip', 'localhost', '127.0.0.1'] 缓存配置,使用Redis CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379/0', 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', } } } Celery消息队列配置 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' ```保存并退出编辑器。然后设置环境变量,让Mayan使用生产环境配置。
```bash echo "export MAYAN_SETTINGS_MODULE=mayan.settings.production" >> ~/.profile source ~/.profile ```
应用数据库变更并收集Web界面所需的CSS、JS文件。
```bash cd /home/mayan source mayan-venv/bin/activate mayan-edms.py migrate mayan-edms.py collectstatic --noinput ```退出mayan用户,返回具有sudo权限的用户,创建Systemd服务文件。
将以下内容粘贴到文件中:
```ini [Unit] Description=Mayan EDMS After=network.target postgresql.service redis-server.service [Service] Type=simple User=mayan Group=mayan WorkingDirectory=/home/mayan Environment="MAYAN_SETTINGS_MODULE=mayan.settings.production" ExecStart=/home/mayan/mayan-venv/bin/gunicorn --bind unix:/home/mayan/mayan.sock mayan.wsgi --workers 3 Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target ```保存后启动并设置开机自启。
```bash sudo systemctl daemon-reload sudo systemctl start mayan-edms sudo systemctl enable mayan-edms sudo systemctl status mayan-edms 检查状态,应为active (running) ```创建Nginx站点配置文件。
```bash sudo nano /etc/nginx/sites-available/mayan ```将以下配置粘贴到文件中,注意将your_server_ip替换为你的服务器公网IP或域名。
启用站点并测试Nginx配置。
```bash sudo ln -s /etc/nginx/sites-available/mayan /etc/nginx/sites-enabled/ sudo nginx -t 应显示"syntax is ok"和"test is successful" sudo systemctl reload nginx ```打开浏览器,访问 http://your_server_ip。使用初始化时创建的超级用户账号登录。
登录后,点击左上角主菜单,进入“设置” -> “系统”。
/home/mayan/media/document_storage)。点击主菜单“用户” -> “组”,创建例如“档案管理员”、“查阅员”等组。然后进入“权限”部分,为每个组分配细粒度的权限,如“文档创建”、“文档查看”、“文档删除”。
点击顶部导航栏的“文档”,然后点击“上传文档”按钮。可以批量选择文件上传。上传后,可以为文档添加标签、分类,并分配到预设的工作流阶段。
sudo systemctl status mayan-edms postgresql nginx redissudo journalctl -u mayan-edms -fsudo systemctl restart mayan-edms创建备份脚本/usr/local/bin/backup_mayan.sh:
赋予执行权限并添加到定时任务:
```bash sudo chmod +x /usr/local/bin/backup_mayan.sh sudo crontab -e 添加一行,每天凌晨2点执行备份 0 2 /usr/local/bin/backup_mayan.sh ```若无法访问Web界面:
sudo ss -tlnp | grep :80确认Nginx在监听80端口。/home/mayan/mayan.sock文件存在且权限正确(用户和组应为mayan)。sudo journalctl -u mayan-edms、sudo tail -f /var/log/nginx/error.log。