基于CentOS搭建Seafile私有网盘

发表于 2019-11-14  530 次阅读


1.准备域名

  • 注册域名
  • 解析IP

2.安装 Seafile

  • 安装依赖环境
    使用 yum 安装 Python 及 MySQL:
    yum install python python-setuptools python-imaging python-ldap python-memcached MySQL-python mariadb mariadb-server
    启动 MariaDB 服务:
    sudo systemctl start mariadb.service
    sudo systemctl enable mariadb.service
    配置 MySQL:
    /usr/bin/mysql_secure_installation
    配置过程输入参数如截图所示,其中 New password 和 Re-enter new password 字段都设置为 MvQEaYO5,其他字段一路回车使用默认值:
  • 安装 Seafile
    下载 Seafile 安装包:
    wget https://mc.qcloudimg.com/static/archive/3d8addbe52be88df4f6139ec7e35b453/seafile-server_5.1.4_x86-64.tar.gz
    解压 Seafile 安装包:
    tar -zxvf seafile-server_5.1.4_x86-64.tar.gz
    安装 Seafile 安装包:
    sudo mkdir -p /opt/seafile/installed
    sudo mv seafile-server_5.1.4_x86-64.tar.gz /opt/seafile/installed
    sudo mv seafile-server-5.1.4/ /opt/seafile
    cd /opt/seafile/seafile-server-5.1.4
    sudo ./setup-seafile-mysql.sh
    执行过程输入参数如截图所示,[server name] 字段输入 Seafile,[ This server's ip or domain ] 字段输入教程第一步申请的域名,[ 1 or 2 ] 字段选择 1,mysql 的 [ root password ] 字段输入 MvQEaYO5,其他字段一路回车使用默认值:

3.启动 Seafile 及修改防火墙规则

  • 启动 Seafile
    sudo ./seafile.sh start
    sudo ./seahub.sh start
    执行过程输入参数如截图所示,其中 [ admin email ] 设置为您登录网盘的帐号,如 admin@qcloudlab.wang,[ admin password ] 和 [ admin password again ] 设置为登录网盘的密码,如 admin_MvQEaYO5:
  • 修改防火墙规则
    sudo firewall-cmd --zone=public --permanent --add-port=8082/tcp
    sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
    sudo firewall-cmd --reload
  • 大功告成!(注意:7.0.x 版本之后,8000端口默认监听在127.0.0.1地址上,这意味着您无法直接通过8000端口访问Seafile服务。建议您配置nginx反向代理。)
    恭喜,您的 Seafile 已经部署完成,您现在拥有专属的网盘了,登录的帐号密码为您启动 Seafile 步骤中设置的邮箱和密码。
    可以通过 Ip 访问网盘:http://ip:8000
    可以通过域名访问网盘:如 http://www.yourdomain.com:8000 ,其中 www.yourdomain.com 替换为您注册的域名
  • 配置nginx反向代理
    官方文档

4.尾记

说一下遇到的一些问题:

  • media目录下所有资源全部404

原因分析:

  • 原本有站,所以我直接在旧站的nginx.conf文件上进行修改,所以出现了问题

解决方案:

  • 注释掉指向旧站目录的root /home/xxx解决问题

其他可能会导致该问题的原因:

seahub没启动fastcgi模式

  • seahub 添加启动参数 fastcgi ./seahub.sh start-fastcgi

出现CSS加载失败情况

  • 解决办法:删除 /tmp/seahub_cache 目录后重启seahub

因 SELinux 导致 nginx 无 media 的读取权限

nginx 无 seahub 读取权限

  • 将 seahub 和 seahub-data 设置成其他用户组可读
    chmod +r ${seafile_dir}/seafile-server-latest/seahub
    chmod +r ${seafile_dir}/seahub-data

心虽在此,逐梦繁星