前言
- 以前曾经写过关于搭建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.sh stop ./seahub.sh stop
- 打开并修改
conf/gunicorn.conf
找到项目:bind = "127.0.0.1:8000"
- 修改成:
bind = "0.0.0.0:8000"
- 重启seahub:
./seahub.sh start ./seafile.sh start
- 关闭服务器:
创建服务,让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
,然后重启一下服务器即可.
补充
网上很多朋友也是遇到了头像不显示和无法更换的问题,我也遇到过,可是是有时候安装会出现这个问题,有时候又不会.网上很多方法,大家可以试试,反正我试过都没有效果.