• 私有云盘Seafile


    私有云盘Seafile

    环境:CentOS 7

    Seafile版本: Seafile 7.0.5社区版

    官网手册:https://cloud.seafile.com/published/seafile-manual-cn/deploy/using_mysql.md

    其他版本下载:https://download.seafile.com/d/6e5297246c/?p=/pro&mode=list

    Seafile 包含以下系统组件:

    • Seahub:网站界面,供用户管理自己在服务器上的数据和账户信息。Seafile服务器通过"gunicorn"(一个轻量级的Python HTTP服务器)来提供网站支持。Seahub作为gunicorn的一个应用程序来运行。
    • Seafile server (seaf-server): 数据服务进程, 处理原始文件的上传/下载/同步。
    • Ccnet server (ccnet-server): 内部 RPC 服务进程,连接多个组件。
    • Controller: 监控 ccnet 和 seafile 进程,必要时会重启进程。

    SQLite版安装

    此版本不需要装数据库,但是需要装Nginx。

    创建结构

    mkdir seafile   #新建一个公司名文件夹,用来作为seafile的存储目录
    mv seafile-server_* seafile
    cd seafile
    
    #将 seafile-server_* 移动到 seafile 目录下后
    tar -xzf seafile-server_*   #解压压缩包
    mkdir installed  #解压后将安装包移动到installed文件夹备份
    mv seafile-server_* installed
    

    项目结构如下

    seafile   #公司名称,云盘根目录
    ├── installed    #存储安装包备份的文件夹
    │   └── seafile-server-*.tar.gz
    └── seafile-server-*
    ├── reset-admin.sh
    ├── runtime
    ├── seafile
    ├── seafile.sh
    ├── seahub
    ├── seahub.sh
    ├── setup-seafile.sh
    └── upgrade
    

    安装环境

    • python 2.7
    • python-setuptools
    • python-imaging
    • python-ldap
    • python-urllib3
    • sqlite3
    # on CentOS 7
    yum -y install epel-release
    rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
    yum -y install python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel
    pip3 install pillow moviepy  #使用pip3或者pip安装pillow
    
    # CentOS 7 & Seafile 7.0.5
    yum install python python-setuptools MySQL-python python-urllib3 python-ldap -y
    

    安装seafile

    cd seafile-server-*
    ./setup-seafile.sh
    

    安装完成后目录如下

    seafile
    ├── conf                # configuration files
    │   ├── ccnet.conf
    │   └── seafile.conf
    │   └── seahub_settings.py
    │   └── seafdav.conf
    ├── ccnet
    │   ├── mykey.peer
    │   ├── PeerMgr
    │   └── seafile.ini
    ├── installed
    │   └── seafile-server_*x86-64.tar.gz
    ├── seafile-data
    ├── seafile-server-*  # active version
    │   ├── reset-admin.sh
    │   ├── runtime
    │   ├── seafile
    │   ├── seafile.sh
    │   ├── seahub
    │   ├── seahub.sh
    │   ├── setup-seafile.sh
    │   └── upgrade
    ├── seafile-server-latest  # symbolic link to seafile-server-*
    ├── seahub-data
    │   └── avatars
    ├── seahub.db
    

    安装成功预览图

    启动服务

    ./seafile.sh start # 启动 Seafile 服务
    ./seahub.sh start # 启动 Seahub 网站 (默认运行在8000端口上)
    

    Nginx代理

    然后安装并配置nginx,代理seafile的两个端口(如果使用Mysql版本可以自动安装Nginx,不需要此步骤)。

    #进入到/etc/nginx/conf.d,这个配置在/etc/nginx/nginx.conf ->http ->include
    cd /etc/nginx/conf.d
    #添加新的文件
    vi seafile.conf
    

    添加如下配置

    server {
        listen 89;
        server_name seafile.example.com;
        proxy_set_header X-Forwarded-For $remote_addr;
        
        location / {
             proxy_pass         http://127.0.0.1:8000;
             proxy_set_header   Host $host;
             proxy_set_header   X-Real-IP $remote_addr;
             proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header   X-Forwarded-Host $server_name;
             proxy_read_timeout  1200s;
             # used for view/edit office file via Office Online Server
             client_max_body_size 0;
             access_log      /var/log/nginx/seahub.access.log;
             error_log       /var/log/nginx/seahub.error.log;
        }
    
        location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            client_max_body_size 0;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout  36000s;
            proxy_read_timeout  36000s;
            proxy_send_timeout  36000s;
            send_timeout  36000s;
        }
    
        location /media {
            root /opt/seafile/seafile-server-latest/seahub;
        }
    }
    

    异常

    查看日志

    tail -f /var/log/nginx/seahub.error.log
    

    端口绑定失败

    nginx启动提示high performance web server,查看日志端口,显示端口绑定失败 bind() to 0.0.0.0:8380 failed (13: Permission denied)

    #添加http允许访问的端口
    semanage port -a -t http_port_t  -p tcp 89
    #查看http允许访问的端口
    semanage port -l | grep http_port_t
    

    nginx代理8000端口失败

    查看日志,显示connect() to 127.0.0.1:8000 failed (13: Permission denied) while connecting to upstream

    需要把SELinux永久关闭.

    Mysql版安装

    mysql版需要提前安装好Mysql数据库并创建一个seafile用户。安装完毕后会自动安装Nginx。sqlite版不需要提前安装数据库,但是安装完毕后也不会安装nginx。

    创建结构

    mkdir /opt/seafile   #新建seafile的文件夹,注意所处的挂载剩余空间
    mv seafile-server_* /opt/seafile   #将下载的tar移动到/opt/seafile下面
    cd /opt/seafile
    
    #将 seafile-server_* 移动到 seafile 目录下后
    tar -xzf seafile-server_*
    #解压后将不用的tar安装包放在/opt/seafile/installed下面.
    mkdir installed
    mv seafile-server_* installed
    

    安装环境

    # CentOS 7 & Seafile 7.0.5
    yum install python python-setuptools MySQL-python python-urllib3 python-ldap -y
    

    安装seafile

    cd seafile-server-*
    ./setup-seafile-mysql.sh  #运行安装脚本并回答预设问题
    

    新建一个或者使用之前的数据库,输入服务器的IP或者域名,给数据库创建一个seafile用户

    启动

    ./seafile.sh start # 启动 Seafile 服务
    ./seahub.sh start  # 启动 Seahub 网站 (默认运行在127.0.0.1:8000端口上)
    

    第一次启动 seahub 时,seahub.sh脚本会提示你创建一个seafile管理员帐号。

    部署完成后,web通过Nginx或者Apache的80端口访问。

    7.0.x 版本之后,8000端口默认监听在127.0.0.1地址上,这意味着无法直接通过8000端口访问Seafile服务。建议配置nginx反向代理

    修改Seahub端口

    关闭 Seafile 服务器

    #关闭 Seafile 服务器
    ./seahub.sh stop # 停止 Seafile 进程
    ./seafile.sh stop # 停止 Seahub
    

    修改conf/gunicorn.conf

    # default localhost:8000
    bind = "0.0.0.0:8001"
    

    重启Seafile服务器

    ./seafile.sh start # 启动 Seafile 服务
    ./seahub.sh start # 启动 Seahub 网站
    

    通过进程杀死

    # 使用pgrep命令检查 seafile/seahub 进程是否还在运行中
    pgrep -f seafile-controller # 查看 Seafile 进程
    pgrep -f "seahub" # 查看 Seahub 进程
    
    #使用pkill命令杀掉相关进程
    pkill -f seafile-controller # 结束 Seafile 进程
    pkill -f "seahub" # 结束 Seafile 进程
    

    报错

    密码不符合要求

    Error: Failed to create mysql user seafile@localhost: Your password does not satisfy the current policy requirements。这个错是Mysql创建用户时密码不符合规范,可以解除规范,也可以使用符合规范的密码。

    -- 可以在工具中用如下语句先创建好这个用户
    set global validate_password_policy=0;
    set global validate_password_length=1;
    create USER 'seafile'@'localhost' IDENTIFIED BY 'seafile';
    

    删除后Seafile遗留

    卸载Seafile客户端后,文件资源管理器中会残留之前安装的图标。
    image

    1. Win+R 执行 regedit 启动注册表编辑器
    2. 地址栏输 计算机HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace
    3. 点开 NameSpace ,删除需要删掉的文件夹
    4. 重启
    如果这篇文章对你有用,麻烦关注一下本人微信公众号,关注送福利哦~
    微信公众号二维码
    不定期安利各种插件,编程技巧,编程思想,欢迎交流~
  • 相关阅读:
    hibernate>对象/关系数据库映射基础 小强斋
    Struts2>环境搭建及HelloWorld 小强斋
    hibernate>多对一关联映射 小强斋
    hibernate>多对一关联映射 小强斋
    hibernate>多对一关联映射 小强斋
    Struts2>运行机制 小强斋
    另外一篇操作excel的参考
    警惕引用,血的教训
    zoj1019
    linux c++连接mysql示例
  • 原文地址:https://www.cnblogs.com/aeolian/p/14511024.html
Copyright © 2020-2023  润新知