私有云盘Seafile

摘要:
Mode=listSeafile包含以下系统组件:SQLite版本无需安装数据库即可安装此版本。

私有云盘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第1张

私有云盘Seafile第2张

启动服务

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

私有云盘Seafile第3张

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第4张

启动

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

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

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

私有云盘Seafile第5张

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第6张

删除后Seafile遗留

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

  1. Win+R 执行 regedit 启动注册表编辑器
  2. 地址栏输 计算机HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace
  3. 点开 NameSpace ,删除需要删掉的文件夹
  4. 重启

免责声明:文章转载自《私有云盘Seafile》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++ 动态加载 DLL 时,GetProcAddress() 返回 NULL,GetLastError() 获取错误代码为 127Centos7永久修改hostname下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

报错解决

"libcudart.so.8.0 cannot open shared object file: No such file or directory" 解决办法是将一些文件复制到/usr/local/lib文件夹下: #注意自己CUDA的版本号! sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /us...

Linux链接脚本学习--lds(转)

Linux链接脚本学习--lds 一、概论 ld: GNU的链接器. 用来把一定量的目标文件跟档案文件链接在一起,并重新定位它们的数据,链接符号引用. 一般编译一个程序时,最后一步就是运行ld进行链接 每一个链接都被一个链接脚本所控制,这个脚本是用链接命令语言书写的. 二、链接脚本 链接脚本的一个主要目的是描述输入文件中的各个段(数据段,代码段,堆,...

微信语音短消息amr文件转WAV

“ 微信语音短消息amr文件转WAV。” 在《SILK编码语音转WAV格式》中提到过,“腾讯系产品,包括QQ、微信、小程序,在语音相关的实现中,也大量使用到SILK编码”,并对SILK编码、WAV格式及SILK转WAV进行了介绍。 本文将针对微信语音短消息amr后缀文件转换成WAV文件的方法进行说明。 而QQ语音流、微信语音流的SILK解码方式与此...

C# 获取当前程序路径方法整理

1. //获取包含清单的已加载文件的路径或 UNC 位置。 public static string sApplicationPath = Assembly.GetExecutingAssembly ( ).Location; //result: X:xxxxxxxxx.dll (.dll文件所在的目录+.dll文件名) 2. //获取当前进程的完整路径...

ps -aux

~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 2900 852 ? Ss 11:49 0:01 /sbin/init root 2 0.0...

桌面文件删除时提示文件不存在的解决方法

问题现象: 桌面上突然有个文件,点击删除报该文件不存在与桌面中,无法删除 解决方案: 1、新建一个txt文件,随便命名,如del.txt 2、打开该txt,内容填”DEL /F /A /Q \?\%1RD /S /Q \?\%1“,然后保存 3、更改txt的后缀名为bat,即del.txt –>del.bat,然后会发现图标变了 4、将之前无法删除的...