--- title: 使用Seafile+ossfs+oss搭建属于自己的私有云盘 date: 2017-07-12 21:37:28 tags: - seafile - 云盘 - oss - ossfs --- 在今年2月份左右写了一篇[博客](https://bavel.top/post/notes/2017-02-24.da-jian-zi-ji-de-si-you-yun-pan),但是略潦草,现在重新实现,重新写一篇博客。 ## 准备工作 ### VPS 这里使用的是便宜的腾讯云学生机,Ubuntu14.04LTS 64bit系统。 ### OSS 阿里有赠送OSS流量的活动,单独买40G/年的服务也不贵。 ## 安装ossfs >注意:在这之前你需要先开通oss,最好是和你的ECS是一个地区的,当然不是用的ECS也可以用,只是速度会慢一些,还有就是下载会使用公网流量,上传没有 1. 点击打开ossfs的下载页面下载对应系统的安装包,[地址](https://help.aliyun.com/document_detail/32196.html) 2. 我以Ubuntu为例,安装ossfs,其他系统看官方的文档就行 ``` sudo apt-get update sudo apt-get install gdebi-core ``` 下载包安装 ``` wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32196/cn_zh/1496671441720/ossfs_1.80.2_ubuntu14.04_amd64.deb sudo gdebi ossfs_1.80.2_ubuntu14.04_amd64.deb ``` 3. 切到root权限,将`my-bucke`t这个bucket挂载到`/cloud`目录下,AccessKeyId是`faint`, AccessKeySecret是`123`,oss endpoint是`http://oss-cn-hangzhou.aliyuncs.com` ``` echo my-bucket:faint:123 > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs mkdir /cloud ``` 4. 将OSS bucket mount到指定目录。 最后一步很重要,不能直接照官方文档上面的来,不然安装的时候可能会出现没有访问权限的问题。 - 首先先看一下用户id,以我的是root为例。 会返回给你用户的uid和gid等等,我假设返回的uid和gid都为0 ``` ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -ouid=0 -ogid=0 -o allow_other -o umask=007 ``` 这里面`allow_other`是允许其他用户访问,但是默认设置的是777权限这样owncloud会提示不安全,用`umask=007`挂载为770权限,不知道为啥这里0代表7,7表示0。 5. 卸载bucket: ``` fusermount -u /tmp/ossfs ``` 6. 出现的错误 使用`-f`进行调试。 “ossfs: could not determine how to establish security credentials” 搜索后发现文章 [(已解决)OSSfs折腾一个星期了 麻烦大大们进来看下](https://bbs.aliyun.com/simple/?t270049.html) 是因为没有找到passwd-ossfs文件,如果在~/.passwd-ossfs文件已经存在,把它的所有者改成www: `sudo chown www ~/.passwd-ossfs` 后来提示用户组不对,使用`chgrp`更改用户组,权限要改成600,取消组内所有权限。 ![](https://images.liangs.me/bitcron/Notes/_image/bced3e29b34639325f98d7b4d0f3263c_8754f030c45ed7d84efdf69cc788ba1a_2017-02-24-12-27-49.png) ## 安装Seafile ### 安装Seafile依赖关系 **所列依赖关系列表** - Java运行时环境(JRE) - Poppler-utils - Libreoffice 4.1+和Python-uno - libpython 2.7 - Python库(确保在此安装中包含python 2.7,您可以使用图像1.2上的命令来验证,如果已经安装了该命令,如果没有,则使用此命令`apt-get install python 2.7 `,并且如果您收到“您安装需要setuptools> = …“,那么您可以使用pip安装setuptools –no-use-wheel –upgrade )。 您还需要安装使用 `easy_install pip`和`pip`安装`boto` 如图1.3和1.4所示) 以root用户身份运行以下命令来安装所需的软件: ``` apt-get install openjdk-7-jre poppler-utils libreoffice libreoffice-script-provider-python libpython2.7 python-pip mysql-server python-setuptools python-imaging python-mysqldb python-memcache ``` 在这个过程中会提示输入MySql密码,输入两次,并记住。 现在我将检查安装的python版本是否符合Seafile的要求: ``` python -V ``` 正如你在屏幕截图中看到的那样,python版本是2.7.6,所以它在所支持的python版本的范围内。 ![](https://images.liangs.me/bitcron/Notes/_image/3d7c9429b351652110d8aa46363eda65_6f6ee45142b5088e54cbd1c80531c06d_2017-07-12-20-55-44.jpg) [图像1.2] 接下来我将使用easy_install安装pip软件包 ``` easy_install pip ``` ![](https://images.liangs.me/bitcron/Notes/_image/3f963cdb2b82174bef0d87ad427272bb_ed3529c9e5b16bc1db07804ba65d1395_2017-07-12-20-56-53.jpg) [图像1.3] 和boto包 ``` pip install boto ``` ![](https://images.liangs.me/bitcron/Notes/_image/1304064715ad572e9825bf5af19425d8_ffd4b17501cd80f02ab95fa80d4f1e57_2017-07-12-20-58-23.jpg) [图像1.4] 接下来为您的语言安装一些额外的字体(例如WenQuanYi,如果我们要使用中文) ``` apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy ``` ![](https://images.liangs.me/bitcron/Notes/_image/6252a6962d2d60b8009fb188ff3e1a12_5da9a9cdee0dfcb884620cda53079d8f_2017-07-12-21-00-11.jpg) ### 用MySQL安装Seafile 首先,您需要验证您的系统是32位还是64位系统。 ``` uname -m ``` ![](https://images.liangs.me/bitcron/Notes/_image/1a56a0d574ec1244b254eca057e23677_a920eed2e55fc887e42331b4633b9dbf_2017-07-12-21-01-28.jpg) 我的服务器是一个64位系统。 32个或64位可以使用两种选择,这两种选项都可以在Seafile的下载页面http://seafile.com/en/download/上获得 。 选择自己的系统以及系统版本使用wget下载,放到/opt/目录下 Ubuntu 系统下载包 ``` wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.0.9_x86-64.tar.gz ``` 接下来,将要创建所需的目录。 首先,我需要创建一个目录名“ guide ”,你可以使用任何描述你的组织的名字。 ``` mkdir /root/guide ``` 然后将文件移动到我们创建的目录 ``` mv seafile-server_6.0.9_x86-64.tar.gz /root/guide ``` 切换到`/root/guide`目录使用`tar`命令解压 ``` tar -xzf seafile-server_6.0.9_x86-64.tar.gz ``` 接下来创建一个安装的目录 。 ``` mkdir installed ``` 我们可能会将文件seafile-server_6.0.9_x86-64.tar.gz移动到安装的新创建的目录 。 ``` mv seafile-server_6.0.9_x86-64.tar.gz /installed ``` 如我们的版本的目录结构所述,一切都应该在正确的位置。 ![](https://images.liangs.me/bitcron/Notes/_image/3571e25afa38ff222a15c29370b592ca_b2cb523f463e26761489bc91852adabe_ceee0c90486619696c3c19dfdf02026a_attach15.jpg) ### 配置MySQL数据库 seafile由3个核心部件组成。 我们需要为这个给定的组件创建一个数据库。 - ccnet服务器 - seafile服务器 - seahub 现在正在为列出的给定数据库创建mysql数据库,帐户和设置权限。 (这只是一个例子,您可以在数据库名称上创建自己的设计)。 海底部件|数据库名称|帐户 -------- | -----|---- ccnet服务器|ccnet-db|seafile seafile服务器|seafile-db |seafile seahub| seahub-db |seafile 以root用户身份登录到mysql ``` mysql -u root -p ``` 输入之前安装设置的MySql密码,然后在mysql shell中发出这些命令: ```sql create database`ccnet-db`character set =utf8; create database`seafile-db`character set =utf8; create database`seahub-db`character set =utf8; create user 'seafile'@'localhost' identified by 'seafile'; grant all privileges on `ccnet-db`.* to `seafile`@localhost; grant all privileges on `seafile-db`.* to `seafile`@localhost; grant all privileges on `seahub-db`.* to `seafile`@localhost; ``` ![](https://images.liangs.me/bitcron/Notes/_image/238404fa0029faf8c74f262195278217_9fe0b55fff88e0913f44c64f78d37f41_2017-07-12-21-16-22.jpg) 输入`exit`退出 ### 设置seafile服务器 所需包: - python 2.7 - python-setuptools - python-imaging - python-mysqldb 通过使用此命令:(以验证其是否已安装) ``` apt-get install python2.7 python-setuptools python-imaging python-mysqldb ``` ![](https://images.liangs.me/bitcron/Notes/_image/775ba80384b311a6664deef0120e2da8_3538cb7877d98a2949fd1f266c74aab4_2017-07-12-21-18-33.jpg) 接下来你需要安装seafile服务器。 转到目录`seafile-server-6.0.9`然后运行脚本`setup-seafile-mysql.sh` 。 ``` cd seafile-server-6.0.9 ls -lrt ./setup-seafile-mysql.sh ``` ![](https://images.liangs.me/bitcron/Notes/_image/7a0f6c73ed8e3817243efcbb7d9f15aa_b7b4e5dd90ed7a716b679d68312eaac1_2017-07-12-21-20-40.jpg) 下面是需要填写的问题,根据自己情况填写,data地址填oss映射地址这里是`/cloud/data`后面端口可以默认。 ![](https://images.liangs.me/bitcron/Notes/_image/d96a9c03a403f2c01f2605b7c73c4fa3_d8db42d0983b0be6fa60c8aa9731ade2_2017-07-12-21-24-38.jpg) ![](https://images.liangs.me/bitcron/Notes/_image/b987ebf1e88a34170a79880f66cfe125_4308bd8b67334ae30f792db6b6702aea_2017-07-12-21-27-09.jpg) ![](https://images.liangs.me/bitcron/Notes/_image/3fdc719e38b3baccd5ca1916c5c1cbd7_4f16071998821285abf5b22466e59748_2017-07-12-21-27-22.jpg) ![](https://images.liangs.me/bitcron/Notes/_image/82e57d1d7faa1f6db4d24fc50c54229e_4cea837ff4f043daa19f9dcecc227fbc_2017-07-12-21-27-52.jpg) ### 启动Seafile服务器 需要切到`/seafile-server-6.0.9`目录 ``` cd /root/guide/seafile-server-6.0.9 ls -al ./seafile.sh start ``` ![](https://images.liangs.me/bitcron/Notes/_image/ac88be8579543caee52335f94c3bc7d3_4e7819c890f670c271025bfa46f9a584_2017-07-12-21-29-29.jpg) 然后开始seahub。 默认端口为8000。 ``` ./seahub.sh start ``` ![](https://images.liangs.me/bitcron/Notes/_image/e1ae6095d0dcf321e7576fd7e9f71cd3_be9f5c51adaad1fcc4fb03e11d00b441_2017-07-12-21-31-09.jpg) 现在可以用浏览器访问了,地址栏输入相应的ip地址 ``` http://123.207.155.108:8000/ ``` ![](https://images.liangs.me/bitcron/Notes/_image/8ab9aaf779596396dc6d3ad4896ac710_9ed22485a72166d4a3fcf6f5dfb19157_2017-07-12-21-32-42.jpg) 登录后,您将看到seafile web管理页面。 ![](https://images.liangs.me/bitcron/Notes/_image/2a66d00b40816c1f34818e60b0a6a5fc_45095ee4af3d434a14a69bd2c667abc8_2017-07-12-21-34-24.jpg) ## 参考 [使用lnmp+owncloud+ossfs+oss搭建属于自己的私有云盘](http://lxl520.com/index.php/archives/82/) [手动搭建属于自己的私有云-seafile安装教程](https://cherryml.com/archives/209.html) [如何安装Seafile在Ubuntu 14.04(Trusty Tahr)](https://www.howtoing.com/seafile-ubuntu-14-04/)