MENU

基于Centos7.3使用Seafile搭建私人网盘

2017 年 10 月 16 日 • 应用服务器

emmmm,开头不知道怎么写,有点懵,哈哈,从去年开始吧,网盘全部火速关闭了,就百度的还活着,我之前一直在用360的网盘,用了估计也有几年了,但是到后期360宣布转型,转型为企业云盘,我看了一下,特喵的明摆着就是要收费嘛,我当时用了将近有200G的储存空间,这特么的没办法转移,有些东西还不能删,然后看了一下企业版的价格,普通版99一年,100G存储空间,没办法,交钱吧,也想过迁到百度,就怕百度也崩了就不好玩了,然后清理了一下云盘,删了很多东西,你懂的撒,最后剩了不到30G,然后就迁了过来,现在也在用,废话不多说了,现在我就是想自己搭一个私人网盘玩玩,使用Seafile,配置也很简单,用起来也算阔以,其实你也可以去直接看官方文档,我这里80%都是在官方文档那里搬过来的,因为按着官方文档做的时候出了点问题,所以我这里整理了一下,你可能也会遇到,如果遇到了回到这里看一下解决方法,当然也可能会出现更多的问题,暂时不纠结了,开撸。

下载软件

创建目录,下载最近安装包
[root@rj-bai ~]# mkdir /data/ && cd /data/ && wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.2.2_x86-64.tar.gz
[root@rj-bai data]# tar zxf seafile-server_6.2.2_x86-64.tar.gz 
[root@rj-bai data]# mv seafile-server-6.2.2/ seafile-server

我存放的配置为/data/,放哪都一样的撒,要安装官方要求环境如下,用centos7.3的原因是因为官方测试可以用的没有centos6.X,而且6.X自带的python版本是2.6.6的,Centos7就不用操心这个了,先把依赖装了吧。

安装依赖

MariaDB 或者 MySQL 服务器 (MariaDB 是 MySQL 的分支)

python 2.7 (从 Seafile 5.1 开始,python 版本最低要求为2.7)

python-setuptools

python-imaging

python-mysqldb

python-ldap

python-urllib3

python-memcache (或者 python-memcached)

添加epel源
[root@rj-bai ~]# yum install -y epel-release
[root@rj-bai ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[root@rj-bai ~]# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro 
[root@rj-bai ~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
[root@rj-bai ~]# yum install -y ffmpeg ffmpeg-devel python-pip python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel

yum安装全部依赖,请确保全部安装上了。

20171016135013.png

使用pip安装pillow&moviepy
[root@rj-bai ~]# pip install pillow moviepy

装好了再次再次执行会出现以下提示,因为我的已经安装好了。

20171016140500.png

现在依赖都已经装好了,下面开始安装数据库了撒。

安装MySQL数据库

我是以yum方式装的MySQL5.6,直接复制之前文档,不多BB了。

[root@rj-bai ~]# rpm -Uvh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
[root@rj-bai ~]# sed -i '27s#enabled=0#enabled=1#g' /etc/yum.repos.d/mysql-community.repo 
[root@rj-bai ~]# sed -i '34s#enabled=1#enabled=0#g' /etc/yum.repos.d/mysql-community.repo
[root@rj-bai ~]# yum -y install mysql-community-server
[root@rj-bai ~]# systemctl start mysqld.service
设置root密码
[root@rj-bai ~]# mysql -u root -p
Enter password: 
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('password') WHERE user = 'root';  
mysql> FLUSH PRIVILEGES;
mysql> exit
Bye

部署 Seafile 服务器

[root@rj-bai ~]# cd /data/seafile-server
[root@rj-bai seafile-server]# ./setup-seafile-mysql.sh //运行安装脚本
[ server name ] rj-bai  //seafile 服务器的名字,随便写,该版本已经不使用了。
[ This server's ip or domain ] wp.rj-bai.com   //访问该网盘的地址,可以是域名IP
[ default "/data/seafile-data" ] yes   //数据存放目录,默认就好,输入yes或回车
[ default "8082" ] 回车   //默认端口
-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 1  //选择1,创建一个新连接

What is the host of mysql server?
[ default "localhost" ]   //使用本机数据库,回车

What is the port of mysql server?
[ default "3306" ]        //默认端口3306,回车

What is the password of the mysql root user?
[ root password ]         //输入root密码

Enter the password for mysql user "seafile":
[ password for seafile ] //脚本自动新建seafile用户,输入密码,剩下的全部回车,最后看一下配置信息是否正确,正确回车就创建了,有错误Crtl+C停止然后重新设置

最后安装完成,会输出如下信息。

20171016142549.png

启动服务

[root@rj-bai seafile-server]# ./seafile.sh start
[root@rj-bai seafile-server]# ./seahub.sh start 8000

启动seahub的时候,默认端口是8000,可以改,再启动之后会设置一个管理的账号密码,按着提示设置一下就好,最终结果如下。

20171016143144.png

现在阔以访问一下试试了,虽然这是一个开源版,但是功能也很强大,登陆后在后台阔以添加用户群组,既然是网盘,保证可以上传下载文件,包括文件链接共享之类的,就是太吃服务器带宽了,1M根本没法玩,上传下载实在是太慢了,存点小文件还有没有问题的,更多牛逼的功能自己去探索吧,我这里就不做演示了。

20171016144019.png

使用nginx代理访问

修改nginx配置文件

nginx也是使用upstream,但是需要添加两个location进行一下控制,因为Seahub是Seafile服务器的网站界面,也就是8000端口,而SeafServer用来处理浏览器端文件的上传与下载,也就是8082端口,我用的域名是wp.rj-bai.com,nginx安装忽略,不知写过多少次了,直接上配置文件。

server {
    listen 80;
    server_name wp.rj-bai.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;
         client_max_body_size 0;

         access_log      /var/log/nginx/wp.rj-bai.com.access.log;
         error_log       /var/log/nginx/wp.rj-bai.com.error.log;
    }

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
        proxy_send_timeout  36000s;
        send_timeout  36000s;
    }
    location /media {
        root /data/seafile-server-latest/seahub;
    }
}

client_max_body_size为不限制上传文件大小,如果要上传大于4G的文件,需要在第二个location添加proxy_request_buffering off;,这个暂时用不到了撒,平滑重启nginx

修改Seafile配置文件
[root@rj-bai ~]# vim /data/conf/ccnet.conf
SERVICE_URL = http://wp.rj-bai.com   //改为自己的域名,去掉8000    
[root@rj-bai ~]# vi /data/conf/seahub_settings.py
FILE_SERVER_ROOT = 'http://wp.rj-bai.com/seafhttp'         //加到最后一行,注意引号别忘了复制
[root@rj-bai seafile-server]# ./seahub.sh restart
[root@rj-bai seafile-server]# ./seafile.sh restart            //重启服务

重启服务,打开自行测试吧,酱紫就行了,一个私有云盘就搭建完成了,如果有条件建议启动https,还有就是最好把邮件也配了,如果忘记密码何阔以用邮件进行找回,我现在很纠结要不要把本站的服务器系统换成CentOS7.0系列,现在用的是Centos6.9,但是如果换会很麻烦,什么都得重新搞,日了狗了,这事就再说吧,暂时就这样吧,结束。

最后编辑于: 2018 年 12 月 10 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码