搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档 ...

打印 上一主题 下一主题

主题 709|帖子 709|积分 2127

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档
本项目接纳以下架构:



  • NFS服务器: 负责存储文档资料。
  • Web服务器: 负责提供文档访问和编辑功能。
  • SELinux: 负责权限控制,确保文档安全。
  • Git服务器: 负责存储文档版本汗青,并提供版本控制功能
  • Shell脚本: 负责自动化运维,例如定期备份、日志清算等
 步骤一:搭建NFS服务器

1.安装NFS软件包 

  1. [root@server data]# yum install -y nfs-utils rpcbind
复制代码
2.设置NFS共享目录

我们需要创建一个共享目录,例如 /var/nfs/share,并设置其访问权限。这里我们答应所有来自 192.168.137.128 网段的客户端以读写方式访问共享目录。
  1. [root@server data]# mkdir -p /var/nfs/share
  2. [root@server data]# cat /etc/exports
  3. /data 192.168.137.128(rw)
复制代码
3.启动NFS服务

需要启动NFS服务,并启用开机自启动,确保服务器不绝提供NFS服务
  1. [root@server data]# chmod o+w /data/
  2. [root@server data]# systemctl disable firewalld --now  //记得关防火墙
  3. [root@server data]# getenforce
  4. Enforcing
  5. [root@server data]# setenforce 0
  6. [root@server data]# systemctl restart nfs-server
  7. //之后可以查看一下
复制代码


步骤二:搭建Web服务器

1.安装Web服务器软件:

  1. [root@localhost ~]# dnf install nginx -y
复制代码
2.设置Web服务器:

需要在Nginx设置文件中界说一个服务器块,指定监听的端口、域名和网站根目录。我们还需要设置HTTPS,利用自签名证书或CA签发的证书举行加密传输,进步安全性。
  1. [root@localhost ~]# vim /etc/nginx/conf.d/document_management.conf
  2. server {
  3.     listen 80;
  4.     server_name document_management.example.com;
  5.     location / {
  6.         root /var/nfs/share;
  7.         autoindex on;
  8.         auth_basic "Document Management";
  9.         auth_basic_user_file /etc/nginx/conf.d/htpasswd;
  10.     }
  11. }
复制代码
3.设置HTTPS:

设置HTTPS需要生成私钥和证书,并将其添加到Nginx设置文件中
  1. [root@localhost ~]# openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes -out /etc/nginx/conf.d/document_management.crt -keyout /etc/nginx/conf.d/document_management.key
复制代码
 一次性生成证书:


  • Country Name (2 letter code): 国家代码,例如 CN 表现中国。
  • State or Province Name (full name): 州或省的名称,例如Sichuan。
  • Locality Name (eg, city): 城市名称,例如 Chengdu。
  • Organization Name (eg, company): 如果不需要填写,直接按回车键。
  • Organizational Unit Name (eg, section): 如果不需要填写,直接按回车键。
  • Common Name (e.g. server FQDN or YOUR name): 通用名称,如果没有FQDN,可以输入localhost或你的IP地址。
  • Email Address: 电子邮件地址,如果不需要填写,直接按回车键
 

4.修改Nginx设置:

  1. [root@localhost ~]# vim /etc/nginx/conf.d/document_management.conf
  2. server {
  3.     listen 443 ssl;
  4.     server_name document_management.example.com;
  5.     ssl_certificate /etc/nginx/conf.d/document_management.crt;
  6.     ssl_certificate_key /etc/nginx/conf.d/document_management.key;
  7.     location / {
  8.         root /var/nfs/share;
  9.         autoindex on;
  10.         auth_basic "Document Management";
  11.         auth_basic_user_file /etc/nginx/conf.d/htpasswd;
  12.     }
  13. }
复制代码
5.重启Web服务器:

  1. [root@localhost ~]# systemctl restart nginx
复制代码
步骤三:创建本地用户和组

1.创建用户:

  1. [root@localhost ~]# useradd user1
  2. [root@localhost ~]# useradd user2
复制代码
2.创建组:

  1. [root@localhost ~]# groupadd group1
  2. [root@localhost ~]# groupadd group2
复制代码
3.将用户添加到组

  1. [root@localhost ~]# usermod -a -G group1 user1
  2. [root@localhost ~]# usermod -a -G group2 user2
复制代码
步骤四:设置SELinux

1.创建文件范例:

用于添加文件上下文
  1. [root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/var/nfs/share(/.*)?"
复制代码
2.设置文件安全上下文

我们需要将共享目录的安全上下文设置为 httpd_sys_content_t,以便Web服务器可以或许访问该目录下的文件。
  1. [root@localhost ~]# chcon -R -t httpd_sys_content_t /var/nfs/share
复制代码
3.答应Nginx访问共享目录

需要答应Nginx访问共享目录,以便Web服务器可以或许访问该目录下的文件。
  1. [root@localhost ~]# semanage port -a -t http_port_t -p tcp 80
  2. [root@localhost ~]# semanage port -a -t http_port_t -p tcp 443
复制代码


步骤五:设置Git服务器

1.Git服务



  • Git是一个分布式版本控制系统,每个开发者的工作目录都是一个完备的代码库副本,包罗所有汗青记录。
  • 这种分布式架构使得开发者可以在本地举行大部分操作,如提交、分支、合并等,而无需依赖网络连接
  • Git通过快照的方式存储数据,每次提交都会生存当前项目标状态(即文件的快照)。这种方式使得回滚到之前的版本非常高效,但也会占用较多的存储空间。
  • Git支持轻量级的分支(是指向特定提交的指针,可以快速创建和删除)和合并操作,使得并行开发和功能集成变得简朴
2.安装Git软件包

  1. [root@localhost ~]# yum install -y git
复制代码
3.创建Git仓库 

用于存储文档版本汗青
  1. [root@localhost ~]# sudo git init --shared /var/nfs/share/git_repository
复制代码
4.设置Git用户名和邮箱


以便Git可以或许记录文档的提交汗青
  1. [root@localhost ~]# git config --global user.name "Your Name"
  2. [root@localhost ~]# git config --global user.email "your.email@example.com"
复制代码
步骤六:设置自动化运维

1.创建shell脚本:

编写一个shell脚本(/path/to/backup.sh),定期备份共享目录,并将备份文件移动到其他存储位置。
同时,要确保 /path/to/backup.sh 脚本有可执行权限
  1. chmod +x /path/to/backup.sh
复制代码
  1. #!/bin/bash   
  2. cd /var/nfs/share   //当前工作目录切换到 /var/nfs/share
  3. tar -zcvf backup.tar.gz .   //使用 tar 工具创建一个名为 backup.tar.gz 的压缩归档文件
  4. mv backup.tar.gz /backup/   //将刚刚创建的 backup.tar.gz 文件移动到 /backup/ 目录中
复制代码


2.设置定时任务:

利用 crontab 下令设置定时任务,让备份脚本在指定的时间自动运行(每天午夜 00:00 执行)。
  1. [root@localhost ~]# crontab -e
  2. 0 0 * * * /path/to/backup.sh
复制代码
步骤七:设置Web服务器用户认证

1.修改Web服务器设置

  1. [root@localhost ~]# vim /etc/nginx/conf.d/document_management.conf
  2. server {
  3.     listen 80;
  4.     server_name document_management.example.com;
  5.     location / {
  6.         root /var/nfs/share;
  7.         autoindex on;
  8.         auth_basic "Document Management";
  9.         auth_basic_user_file /etc/nginx/conf.d/htpasswd;
  10.         access_control_list_file /etc/nginx/conf.d/access_list
  11.     }
  12. }
复制代码
2.创建访问控制列表文件

  1. [root@localhost ~]# touch /etc/nginx/conf.d/access_list
复制代码
3.设置访问控制列表:

  1. [root@localhost ~]# echo "user1 group1" >> /etc/nginx/conf.d/access_list
  2. [root@localhost ~]# echo "user2 group2" >> /etc/nginx/conf.d/access_list
复制代码
 最后测试一下
大概需要重启一下nginx服务再测试
  1. [root@localhost ~]# systemctl restart nginx
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦应逍遥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表