前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派自搭建家庭云储存服务,海文SeaFile安装全攻略

树莓派自搭建家庭云储存服务,海文SeaFile安装全攻略

作者头像
BrilliantChen
发布2023-01-01 15:47:37
2.2K0
发布2023-01-01 15:47:37
举报
文章被收录于专栏:HscBookHscBookHscBook

作为街拍党的我会经常备份相册到云方便随时随地同步到宿舍和家里的电脑,而国内支持手机相册备份的云服务要么就限速限空间老铁实在是不能忍受了。召唤树莓派!是时候搭建个私人家庭网盘了,对比了两家较大名气的开源云服务SeaFile和OwnCloud,我选择了SeaFile,由于树莓派在内网,穿透的问题6月的时候搭建了个评论服务器刚好资源较空闲可以用来内网穿透到树莓派。

搭建Seafile

依赖环境准备

在你准备搭建的时候建议先仔细阅读一下官方的英文文档(中文文档不全):SeaFile Documents 本文档针对有一定Linux的人员阅读,并不是傻瓜教程因为官方文档已经说得非常详细了,但是因为官方文档是通用教程有些地方可能不适用于树莓派,本文对搭建方法简单带过,着重讲不适用于树莓派的地方,和我搭建过程中的疑难杂症 1. 安装依赖(摘抄官方文档)

$ apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 sqlite3

2. 建立主工作文件夹

#在一个你需要放置SeaFile的文件夹建立一个父文件夹,所有操作均在此文件夹进行
mkdir seafile
cd seafile
下载树莓派版安装包

https://github.com/haiwen/seafile-rpi/releases

# 下载
wget <https://github.com/haiwen/seafile-rpi/releases/download/v6.0.9/seafile-server_6.0.9_stable_pi.tar.gz>
# 解压
tar zxvf seafile-server_6.0.9_stable_pi.tar.gz
安装Seafile

程序会自行检测依赖环境是否安装若不报错会自动进入安装程序,接下来按照安装程序的提示分别输入 网站名称服务地址数据文件夹地址 就可以了安装程序很完善不再另行解释。

cd seafile-server-6.0.9
./setup-seafile.sh
Seafile的配置

https://manual.seafile.com/config/ccnet-conf.htmlhttps://manual.seafile.com/config/seahub_settings_py.html 着重看conf文件夹的 seafile.confseahub_settings.py配置文件ccnet.conf文件中的配置数据已经逐步移动到seahub_settings.py了,seahub_settings.pyc是缓存文件

默认的服务端口更改

默认端口8000是网页服务端口,8082是文件服务端口 修改 seafile.conf 文件中的两个port:更改端口 如果修改了端口需要注意添加 SERVICE_URL="http/s://服务地址:端口"FILE_SERVER_ROOT="http/s://服务地址:端口/seafhttp"seahub_settings.py 配置文件中,并且文件服务端口的修改要么就保持默认要么就要与网页服务端口同步一致(针对经过Nginx反代的Seafile,由自带的网页服务提供的网页不建议修改)

例如服务地址:https://www.hscbook.com 网页端口:8111 文件服务端口:8111

#seafile.conf
[fileserver]
#服务地址
host = 0.0.0.0
#Seafile 服务端口
port = 8111
[seahub]
#SeaHub 服务端口
port=8111
#seahub_settings.py
SERVICE_URL = '<https://www.hscbook.com:8111>'
FILE_SERVER_ROOT = '<https://www.hscbook.com:8111/seafhttp>'
Seafile 自启动

https://manual.seafile.com/deploy/start_seafile_at_system_bootup.html 在官方文档获取启动脚本并修改参数,上传到/etc/init.d/seafile-server赋予执行权限 运行:chkconfig --add seafile-server

安装Memcached加速Seafile

依赖环境准备
sudo apt-get install gcc make binutils python python-all-dev
编译Memcached
#从官方下载源码
wget <http://memcached.org/latest>
#重命名(查看下载信息修改版本号)
mv latest memcached-1.x.x.tar.gz
#解压缩
tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x.tar.gz
#编译
./configure --prefix=/usr/local/memcached && make && sudo make install
编译libmemcached
#从官方下载源码
wget <https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz>
#解压缩
tar zxf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
#编译 (这个树莓派编译要超级久)
./configure --prefix=/usr/local/libmemcached
make &&make install
安装Python环境的客户端
LIBMEMCACHED=/usr/local/libmemcached pip install pylibmc
sudo pip install django-pylibmc
修改Seafile配置文件开启缓存

打开seahub_settings.py添加

#######################################################
##  启用MemCached缓存
#######################################################
CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

运行Memcached sudo /usr/bin/memcached -d -m 64m -l 127.0.0.1 -p 11211 -u pi -d 最后重启Seafile服务就可以了

自启动Memcached

修改下面的参数,并上传到/etc/init.d/memcached赋予执行权限 运行:chkconfig --add memcached

#! /bin/sh

### BEGIN INIT INFO
# Provides:          memcached
# Required-Start:    $remote_fs $syslog $time
# Required-Stop:     $remote_fs $syslog $time
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: starts the memcached server
# Description:       starts memcached using start-stop-daemon
### END INIT INFO

PATH=/opt/bin:/opt/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PIDFILE=/run/memcached.pid
NAME=memcached
RUNAS=pi

EXEC=/usr/local/memcached/bin/memcached
EXEC_OPTS="-p 11211 -m 64m -d"

case "$1" in
  start)
        echo "Starting $NAME"
        start-stop-daemon --start --chuid $RUNAS --quiet --background --make-pidfile --pidfile $PIDFILE \\
                --exec $EXEC -- $EXEC_OPTS
        ;;
  stop)
        echo "Stopping $NAME"
        start-stop-daemon --stop --quiet --pidfile $PIDFILE \\
                --exec $EXEC
        ;;
  restart)
        echo "Restarting $NAME"
        start-stop-daemon --stop --quiet --pidfile $PIDFILE \\
                --exec $EXEC
	sleep 1
        start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE \\
                --exec $EXEC -- $EXEC_OPTS
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart}" >&2
        exit 1
        ;;
esac

exit 0

Nginx 反代理Seafile并CDN加速

Seafile 的静态文件挺大的,每次都回源好心疼我的流量,上官方论坛、谷歌都没有找到有用的教程就只能自己研究了。我的环境有点特殊,因为树莓派是经过内网穿透到VPS进行外网访问的端口不是默认的80,443端口,这表示我不能用CDN加速了(大多数的CDN都是只能加速80,443流量的)有天逛谷歌无意看到一篇Cloudflare的文章:https://support.cloudflare.com/hc/en-us/articles/200169156-Which-ports-will-Cloudflare-work-with-发现Cloudflare可以反代理非80,443端口这大法简直贼溜。 HTTP专用端口:80,8080,8880,2052,2082,2086,2095 HTTPS专用端口:443,2053,2083,2087,2096,8443 专用端口的意思是比如你用2053端口,那么从 【 用户Cloudflare源服务器 】 必须全程HTTPS,任何一环使用HTTP都是不允许的。

安装Srafile后头像无法正常显示

可能是因为我的环境的问题,第一次安装Seafile后头像无法显示,上传头像显示Page unavailable删掉文件重新下载安装也没用,上官方发帖提问无果,最后还是自己根据官方的文档上的目录结构检查目录发现avatars目录链接文件存在异常。 正常情况/seafile-server-latest/seahub/media/avatars 目录是个链接文件指向 -> /seahub-data/avatars,并且/seahub-data/avatars存放着默认头像 我分别用ln命令查看了两个目录,发现/seahub-data/avatars 也是个链接文件并指向 -> /seafile-server-latest/seahub/media/avatars 这是搞事情啊,两个互相指向?

处理方法

分别在SSH(FTP查看不了失效的链接文件)把两个avatars链接文件RM掉。再在下载的安装包重新提取avatars文件夹放到 ./seahub-data 并且在./seafile-server-latest/seahub/media/avatars 创建链接文件并指向 ./seahub-data/avatars 清空缓存然后重启SeaFile

END

为了搭建Seafile我用了一个礼拜,遇到很多的疑难杂症都是自己Google的。实在自己解决不了的可以上官方论坛或者直接在下面留言也行,我能帮的我都尽量。 留言开通了留言审核请正确填写邮箱,填写的邮箱不对外公开并且是经过加密的,不用担心垃圾邮件服务器的扫描(我也很厌恶垃圾邮件)!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搭建Seafile
    • 依赖环境准备
      • 下载树莓派版安装包
        • 安装Seafile
          • Seafile的配置
            • 默认的服务端口更改
              • Seafile 自启动
              • 安装Memcached加速Seafile
                • 依赖环境准备
                  • 编译Memcached
                    • 编译libmemcached
                      • 安装Python环境的客户端
                        • 修改Seafile配置文件开启缓存
                          • 自启动Memcached
                          • Nginx 反代理Seafile并CDN加速
                          • 安装Srafile后头像无法正常显示
                            • 处理方法
                            • END
                            相关产品与服务
                            内容分发网络 CDN
                            内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档