私有云盘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客户端后,文件资源管理器中会残留之前安装的图标。
- Win+R 执行 regedit 启动注册表编辑器
- 地址栏输 计算机HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace
- 点开 NameSpace ,删除需要删掉的文件夹
- 重启