前言
- 以前曾经写过关于搭建seafile的文章,那是使用sqlite3的,比较适合文件少的用户,可是如果用户多文件多就有点吃不消.这次顺便重新梳理一下整个流程,这里是使用香橙派PC+的ARMbian,从挂载硬盘到完成搭建服务器.
由于从7.1.X开始已经舍弃了使用python2.7环境,而最新版本本人测试过有很多莫名其妙的问题,目前还没解决,所以这里使用的是7.0.5版本
新硬盘挂载流程
格式化硬盘
- 确认树莓派识别硬盘
sudo fdisk -l | grep '^Disk'
- 确认硬盘格式:
sudo blkid
- 把硬盘格式化成EXT4:
sudo mkfs.ext4 /dev/sda
挂载硬盘
- 建立一个挂载点:
sudo mkdir /media/usbhdd
- 设置目录的所有人和所有组
sudo chown root:root /media/usbhdd
- 挂载:
sudo mount -t ext4 /dev/sda /media/usbhdd
- 确认挂载:
cd /media/usbhdd
- 卸载:
sudo umount /media/usbhdd
- 开机自动挂载
备份文件:sudo cp /etc/fstab /etc/fstab.bakup
编辑文件:sudo nano /etc/fstab
查看uuid:sudo blkid
最后行加上:UUID=ec1da2aa-f4fc-4bbd-ba59-69b2319687cc /media/usbhdd ext4 defaults 0 0
安装并配置MySQL/MariaDB
(省略...)详细看这里
安装并配置phpMyAdmin
(最好按照LAMP环境配置教程做,不需要的可以省略)
详细看这里
需要注意的是,如果使用apt
不能安装,那么可以去phpMyAdmin的官网直接下载安装版:
- 把它解压到
opt
目录下,把文件夹重命名为:phpmyadmin
.例如我这里的路径是/opt/phpmyadmin
apt install php-mysql
ln -s /opt/phpadmin /var/www/html
sysemctl restar apache2
- 浏览器输入:
http://你的服务器IP/phpMyAdmin
,看见管理界面则表示成功,如果提示错误则检查文件夹权限和依赖问题.
搭建seafile服务器
下载和解压安装包
(省略...)
安装依赖:
Seafile 7.0.x
on Ubuntu 16.04
apt-get update apt-get install python2.7 python-setuptools python-mysqldb python-urllib3 python-ldap
on CentOS 7
yum install python python-setuptools MySQL-python python-urllib3 python-ldap
部署和目录设计
假设你已经下载 seafile-server_* 到/opt/seafile目录下。 我们建议这样的目录结构:
mkdir /opt/seafile mv seafile-server_* /opt/seafile cd /opt/seafile */ #将 seafile-server_* 移动到 seafile 目录下后 /* tar -xzf seafile-server_* mkdir installed mv seafile-server_* installed
现在,你的目录看起来应该像这样:
seafile ├── installed │ └── seafile-server_7.0.0_x86-64.tar.gz └── seafile-server-7.0.0 ├── reset-admin.sh ├── runtime ├── seafile ├── seafile.sh ├── seahub ├── seahub.sh ├── setup-seafile-mysql.sh └── upgrade
这样设计目录的好处在于:和 seafile 相关的配置文件都可以放在 /opt/seafile/conf
目录下,便于集中管理.
后续升级时,你只需要解压最新的安装包到 /opt/seafile
目录下.
安装
cd seafile-server-*
./setup-seafile-mysql.sh
运行安装脚本并回答预设问题,其中当某个关于设置数据存放路径的(就是以后你存放云盘资料的地方)时候,注意记得填写为你的外挂硬盘上(或者你需要的分区),而这里是:/mnt/hdd0/seafile
在设置过程中,如果你的系统中没有安装上面的某个软件,那么 Seafile初始化脚本会提醒你安装相应的软件包.
该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数:
在这里, 你会被要求选择一种创建 Seafile 数据库的方式:
------------------------------------------------------- Please choose a way to initialize seafile databases: ------------------------------------------------------- [1] Create new ccnet/seafile/seahub databases [2] Use existing ccnet/seafile/seahub databases
-
如果选择
1
, 你需要提供根密码. 脚本程序会创建数据库和用户。 -
如果选择
2
,ccnet/seafile/seahub
数据库应该已经被你(或者其他人)提前创建。
如果安装正确完成,你会看到下面这样的输出 (新版本可能会有所不同)
现在你的目录结构看起来应该是这样:
seafile ├── ccnet # configuration files │ ├── mykey.peer │ ├── PeerMgr │ └── seafile.ini ├── conf │ └── ccnet.conf │ └── seafile.conf │ └── seahub_settings.py │ └── gunicorn.conf ├── installed │ └── seafile-server_7.0.0_x86-64.tar.gz ├── seafile-data ├── seafile-server-7.0.0 # active version │ ├── reset-admin.sh │ ├── runtime │ ├── seafile │ ├── seafile.sh │ ├── seahub │ ├── seahub.sh │ ├── setup-seafile-mysql.sh │ └── upgrade ├── seafile-server-latest # symbolic link to seafile-server-7.0.0 ├── seahub-data │ └── avatars
seafile-server-latest
文件夹为指向当前 Seafile 服务器文件夹的符号链接.
将来你升级到新版本后, 升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹.
启动seafile服务器
启动 Seafile 服务器和 Seahub 网站
在seafile-server-latest
目录下,运行如下命令
-
启动 Seafile:
./seafile.sh start
启动 Seafile 服务 -
启动Seahub
./seahub.sh start
启动 Seahub 网站(默认运行在127.0.0.1:8000端口上)
你第一次启动seahub
时,seahub.sh
脚本会提示你创建一个 seafile 管理员帐号。
注意:7.0.x 版本之后,8000
端口默认监听在127.0.0.1
地址上,这意味着您无法直接通过8000
端口访问Seafile服务。 -
在另一端口上运行 Seahub
如果你不想在默认的8000
端口上运行Seahub
, 而是想自定义端口(比如8001
)中运行,请按以下步骤操作:
6.3.0 及其之后的版本,我们弃用了./seahub.sh start
<port>
的方式使seahub进程监听在其他端口。但是,您可以通过修改conf/gunicorn.conf
中的端口设置来指定seahub
启动端口:
创建服务,让seafile开机自动运行
- 对于运行 systemd 的系统
例如 Debian 8 以及更新的版本,Ubuntu 15.04以及更新的版本。
创建 systemd 服务管理文件,将以下示例中 ${seafile_dir} 替换为您自己的 seaile 安装路径,并且将 user 指向真正运行seafile的用户。然后您需要重新加载 systemd 的守护进程:systemctl daemon-reload。
创建 systemd 服务文件seafile.service
:sudo nano /etc/systemd/system/seafile.service
文件内容如下:
[Unit] Description=Seafile # add mysql.service or postgresql.service depending on your database to the line below After=network.target [Service] Type=oneshot ExecStart=opt/seafile/seafile-server-latest/seafile.sh start ExecStop=opt/seafile/seafile-server-latest/seafile.sh stop RemainAfterExit=yes User=seafile Group=seafile [Install] WantedBy=multi-user.target
创建 systemd 服务文件 seahub.service
:sudo nano /etc/systemd/system/seahub.service
[Unit] Description=Seafile hub After=network.target seafile.service [Service] # change start to start-fastcgi if you want to run fastcgi ExecStart=opt/seafile/seafile-server-latest/seahub.sh start ExecStop=opt/seafile/seafile-server-latest/seahub.sh stop User=seafile Group=seafile Type=oneshot RemainAfterExit=yes [Install] WantedBy=multi-user.target
开启seafile的WebDav功能
打开配置文件:/opt/seafile/conf/seafdav.conf
,可以看见一下内容:
[WEBDAV] enabled = false port = 8080 fastcgi = false share_name = /
把enabled
修改成:true
,然后重启一下服务器即可.
补充
网上很多朋友也是遇到了头像不显示和无法更换的问题,我也遇到过,可是是有时候安装会出现这个问题,有时候又不会.网上很多方法,大家可以试试,反正我试过都没有效果.