一次在raspberrypi上部署seafile服务的经历

写在前面的话:失业待家里,看着城市里培训学校那些机器人玩具,我拿出我吃灰的树莓派3B打算部署一个seafile练练手,通过官网下载了最新的服务器端,但在安装时没成功,问题出来我用的centos系统是32位的,而最新的服务器端仅支持64位系统,这个问题还有待跟进解决。在家里计算机里找到一篇以前自己部署后写的文字,我按照之前自己写的文字再部署了一次,在这里分享。

RaspberryPi部署seafile

硬件:raspberry pi3 e14(电源、散热片、外壳)、TF卡16G、读卡器、个人电脑(Windows7)、交换机、网线若干

软件:SD Card Formatter(用于格式化TF卡)

Win32DiskImager(将操作系统镜像写入TF卡制作启动盘)

CentOS-Userland-7-armv7hl-Minimal-1708-RaspberryPi3(raspberrypi操作系统镜像)

seafile-server_6.2.5_stable_pi.tar.gz

Xshell

一、格式化TF卡

将TF卡放入读卡器,插入个人电脑使用SD Card Formatter进行格式化

格式化将擦出此卡上所有数据,确实是否继续?点击是(Y)
00
01

格式化完成

03

二、使用Win32DiskImager将CentOS系统装入TF卡
04
三、启动raspberry pi

将准备好的TF卡插入raspberry pi,连接好键盘、显示器、网线、电源,启动raspberry pi

四、配置网络

编辑ifcfg-eth0文件,将接口设为静态,并配置好IP地址、网关、子网掩码、DNS服务器地址等。
05
新建network文件
06
问题:在配置好eth0接口静态地址后一直不能上网,DHCP获得地址又能上。CentOS-Userland-7-armv7hl-Minimal-1708-RaspberryPi3(raspberrypi操作系统镜像)没有/etc/sysconfig/network文件。(这个问题在我这次部署时没有发生)

测试网络
07
网络配置告一段落,现在可以通过远程连接了。

五、远程登录

Root账号:root

初始密码:centos
08
六、Seafile环境搭建

1、数据库Mariadb安装

[root@centos-rpi3 ~]# yum install mariadb-server.armv7hl
09
安装记录文件:

启动Mariadb测试连接

[root@centos-rpi3 seafile-server-6.2.5]# systemctl start mariadb

[root@centos-rpi3 seafile-server-6.2.5]# mysql
10
修改数据库root密码

MariaDB [(none)]> SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘lqvsb!076920’);
11
2、下载安装Nginx

官方下载页面:nginx: download

通过xftp上传到raspberry pi的/home目录下
12
随便把seafile的服务器端也传了上去
13
3、安装Nginx编译环境

安装gcc编译器

[root@centos-rpi3 nginx-1.12.1]# yum install gcc
14
安装记录文件:

4、安装PCRE库(the HTTP rewrite module requires the PCRE library)

[root@centos-rpi3 nginx-1.12.1]# yum install pcre-devel.armv7hl
15
安装记录文件:

5、安装zlib库

[root@centos-rpi3 nginx-1.12.1]# yum install zlib.armv7hl
16
安装记录文件:

6、安装make工具

[root@centos-rpi3 nginx-1.12.1]# yum install make
17
安装记录文件:

7、解压缩Nginx
18
8、编译安装

[root@centos-rpi3 nginx-1.12.1]# ./configure

[root@centos-rpi3 nginx-1.12.1]# make

[root@centos-rpi3 nginx-1.12.1]# make install
19
安装记录文件:

安装完成部分文件和默认路径记录:

nginx path prefix: "/usr/local/nginx"

nginx binary file: "/usr/local/nginx/sbin/nginx"

nginx modules path: "/usr/local/nginx/modules"

nginx configuration prefix: "/usr/local/nginx/conf"

nginx configuration file: "/usr/local/nginx/conf/nginx.conf"

nginx pid file: "/usr/local/nginx/logs/nginx.pid"

nginx error log file: "/usr/local/nginx/logs/error.log"

nginx http access log file: "/usr/local/nginx/logs/access.log"

nginx http client request body temporary files: "client_body_temp"

nginx http proxy temporary files: "proxy_temp"

nginx http fastcgi temporary files: "fastcgi_temp"

nginx http uwsgi temporary files: "uwsgi_temp"

nginx http scgi temporary files: "scgi_temp"

问题:编译环境时遇见./configure找不到zlib库
20
如果确认zlib库已经安装没能解决,再将zlib_devel库也装上,这个问题是这次部署时遇见的
21
9、清除iptables规则

[root@centos-rpi3 nginx-1.12.1]# iptables –F
22
10、启动Nginx服务

[root@centos-rpi3 nginx-1.12.1]# /usr/local/nginx/sbin/nginx
23
11、测试Nginx已经启动
24
至此部署环境搭建完成。

七、部署seafile服务器端

官方Seafile服务器端、客户端下载页面:

https://www.seafile.com/download/

1.安装Python环境

[root@centos-rpi3 seafile-server-6.2.5]# yum install python.armv7hl python-setuptools.noarch python-ldap.armv7hl python-memcached.noarch python-urllib3.noarch python-imaging MySQL-python –y
25
PS:python-imaging模块在yum list all | grep python的列表里没有,但在执行yum install python-imaging后会安装python-pillow.armv7hl及其依赖关系的包。

安装记录文件

官方发布6.1.0以后版本必须要安装python-request模块
26
2.安装Python-request模块

[root@centos-rpi3 seafile-server-6.2.5]# yum install python-requests.noarch
27
安装记录文件:

3.解压seafile服务器端程序启动安装

[root@centos-rpi3 home]# tar -xf seafile-server_6.2.5_stable_pi.tar.gz

[root@centos-rpi3 home]# cd seafile-server-6.2.5/

[root@centos-rpi3 seafile-server-6.2.5]# ./setup-seafile-mysql.sh
28
问题:在启动安装脚本时,报错提示找不到Python路径
29
在查看setup-seafile-mysql.sh后发现,安装脚本用到了which这个工具,而这个centos的系统默认没有自带which工具,安装which工具以后解决了。

安装过程可参考官方提供的管理手册

配置过程需要输入root@localhost用户访问的密码,同时会引到配置seafile建立的数据库的访问密码,这里两个密码我都设置成:lqvsb!076920
30
31
服务器端部署完毕

4.启动seafile服务

启动seafile服务

[root@centos-rpi3 seafile-server-6.2.5]# ./seahub.sh start
32
启动seahub服务

[root@centos-rpi3 seafile-server-6.2.5]# ./seahub.sh start
33
在第一次启动的时候,系统会提示你输入一个账号和密码,作为管理员账号和密码。

5、访问测试

服务器地址:http://192.168.80.9:8000
34
至此服务搭建完成,局域网可以使用了。后续有时间再整理下域名和局域网外访问的过程。

下文呢?你安装Nginx的目的是什么?