玩客云,内存1G,硬盘8G,CPU晶晨S805,价格50-60
要安装Seafile,主要有如下几个步骤:
1 刷入Armbian系统
刷入部分请直接参考https://www.huiyingwu.com/3155/,唯一要说明的是不需要接显示器,接了显示器也看不到东西,正在刷入系统的时候玩客云前面的灯会交替显示一下红,一下蓝,等到一直显示蓝灯就说明刷入完成了, 完成后接着如下操作
- 拔掉U盘,拔掉电源线,再插入电源线,先在路由器中给玩客云绑定一个固定的IP地址,如果IP地址不固定,seafile就不好弄了,我绑定的地址为192.168.2.189,路由器绑定操作好后再拔插一次玩客云的电源线,让玩客云重新启动后得到我们指定的IP地址192.168.2.189
- 远程登录玩客云,windows下用putty,Macos和Linux下直接打开终端,输入:
ssh [email protected]
接着输入默认密码1234就进入玩客云的Armbian系统了,如下图所示
为了安全起见,请用
passwd root
命令修改root的密码
- 卸载自带的docker,为什么要卸载,因为系统自带的docker无法启动,留着也是占用空间,最关键的原因是我们根本不需要它
apt remove docker-ce
apt autoremove
4.更新Armbian系统,先修改(不是追加,原有的内容要清空)/etc/apt/sources.list.d/armbian.list的内容为
deb https://mirrors.tuna.tsinghua.edu.cn/armbian/ stretch main stretch-utils stretch-desktop
为什么要修改,不修改的话连的是外国网站,下载速度慢啊,修改前就是跑毒靠两条腿,修改后就是骑上两轮摩托车了。
修改方法为win下用winscp软件,macos下用ForkLift软件,大师也可以直接使用vim手工码进去,保存后输入更新命令
apt update && apt upgrade
等它更新完成后就可以进入下个步骤了
2 安装nginx 和 mariadb
为什么要安装nginx,mariadb,其实不安装也可以用Seafile,不过安装这两货生活会更好,不安装就相当于你吃鸡捡了小手枪,安装后就是捡了M416了
安装命令如下
apt install nginx mariadb-server
安装完成后默认mariadb的root密码为空啊,这样不成啊,必须修改它,请依次使用下面的命令
mysql -u root -p # 提示符会变成 MariaDB [(none)]>
use mysql; # 提示符会变成 MariaDB [mysql]>
update user set password=password('密码密码') where user='root' and host='localhost';
flush privileges; # 刷新mysql缓存
exit; # 退出mysql命令行模式
到这里nginx和mariadb数据库就安装好了,输入reboot重新启动一次系统备用。
3 挂载USB硬盘
为什么要挂载USB硬盘,因为玩客云自带的硬盘就8G啊,系统还要用掉40%,可用空间还没10年前的手机大,不通过usb硬盘扩大存储空间的话还能叫云盘吗
先把usb硬盘插入电脑分好区,我用的是500G的旧笔记本机械硬盘,原来分了3个NTFS区,我把最后一个区的内容都移动到前面两个区,把它分配给Seafile使用
把USB硬盘插入玩客云的USB口,ssh连上玩客云,输入命令
fdisk -l
最后部分显示如下
Device Start End Sectors Size Type
/dev/sda1 2048 314574848 314572801 150G Microsoft basic data
/dev/sda2 314576896 643829760 329252865 157G Microsoft basic data
/dev/sda3 643831808 976768820 332937013 158.8G Microsoft basic data
/dev/sda3就是我准备留给Seafile用的,我们把它格式化成ext4格式
mkfs.ext4 /dev/sda3
格式化执行完成后,然后得到它的UUID准备做自动挂载工作,输入命令
blkid /dev/sda3
得到的内容如下:
/dev/sda3: UUID="06dc25bf-539f-4131-ac58-59cc45722dec" TYPE="ext4" PARTLABEL="Basic data partition" PARTUUID="bd0eb165-6651-11e8-9a11-b8975a5489c7"
其中的UUID就是我们需要的,然后准备好挂载目录,输入如下命令
cd /root
mkdir seafile
cd seafile
mkdir seafiledisk
打开/etc/fstab文件,在最后行追加(记住是追加,原有的内容不要动)下面内容
UUID=06dc25bf-539f-4131-ac58-59cc45722dec /root/seafile/seafiledisk ext4 defaults 0 0
保存好后,reboot重启一次系统,如果/root/seafile/seafiledisk目录下有一个lost+found目录说明挂载成功,那么挂载USB硬盘的工作就顺利完成
4 安装Seafile PI版本
因为Seafile是用python语言开发的,所以安装Seafile前先准备必要的包,不然一堆报错,输入如下命令安装必要包
apt-get install python2.7 python-setuptools python-mysqldb python-urllib3 python-ldap python-imaging python-certifi python-idna -y
这里要特别说明的是最后3个包,特别是python-imaging包,整整耽误了我3天时间,因为官方的安装文档中没有提到这3个包,导致安装完成后启动不了seahub服务,折腾死我了。
必要包安装完成后就用迅雷下载seafile安装包,下载地址:[https://github.com/haiwen/seafile-rpi/releases],本文基于7.0.5。
用winscp或ForkLift上传到/root/seafile目录下,然后上命令
cd /root/seafile
tar -xzf seafile-server_7.0.5_stable_pi.tar.gz
cd seafile-server-7.0.5
./setup-seafile-mysql.sh
然后根据提示一步一步往下走就行了,特别注意 seafile data dir 这里要输入我们挂载的USB硬盘地址
/root/seafile/seafiledisk/seafile-data
server ip/domain这里输入192.168.2.189
,其他的能默认的就默认
安装完成后会提示你用./seafile.sh start
启动seafile服务, 用./seahub.sh start
启动seahub服务,seahub服务启动前会提示你创建一个管理员账号,跟着提示输入邮箱和密码就好了
5 后续完善工作
- 配置nginx反向代理
为什么要配置nginx反向代理,官方解释> 注意:7.0.x 版本之后,8000端口默认监听在127.0.0.1地址上,这意味着您无法直接通过8000端口访问Seafile服务。建议您配置nginx反向代理。
那么怎么配置反向代理呢,简单,新建文件/etc/nginx/conf.d/seafile.conf,内容为
server {
listen 80;
server_name 192.168.2.189;
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/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
proxy_request_buffering off;
}
location /media {
root /root/seafile/seafile-server-latest/seahub;
}
}
根据你的实际地址修改server_name 192.168.2.189;
和root /root/seafile/seafile-server-latest/seahub;
, 保存后就可以了。这个文件格式必须特别注意,有一点格式问题nginx就会无法启动,比如报这样的错proxy_pass
。
- seafile和seahub服务自动启动
这个也简单,新建文件/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 mysqld.service
[Service]
Type=oneshot
ExecStart=/root/seafile/seafile-server-latest/seafile.sh start
ExecStop=/root/seafile/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
User=root
Group=root
[Install]
WantedBy=multi-user.target
根据实际情况修改User=root
,Group=root
,ExecStart=/root/seafile/seafile-server-latest/seafile.sh start
,ExecStop=/root/seafile/seafile-server-latest/seafile.sh stop
再新建一个文件/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=/root/seafile/seafile-server-latest/seahub.sh start
ExecStop=/root/seafile/seafile-server-latest/seahub.sh stop
User=root
Group=root
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
这两个文件保存好后,依次输入命令启用这两个服务就好了
systemctl daemon-reload
systemctl enable seafile.service
systemctl enable seahub.service
到这里安装操作就全部完成,输入reboot重启系统,重启完成后浏览器中输入192.168.2.189看看效果,然后windows端,macos端,安卓手机端,苹果手机端全部安装上seafile吧
要看启动报错详细原因用 ./seahub.sh start-fastcgi 命令(只是用于7.0.5)