如何在Ubuntu 16.04上设置Seafile文件存储服务器

时间:2020-03-05 15:32:47  来源:igfitidea点击:

Seafile Storage Server是一个基于开源的基于云的文件存储系统,类似于Dropbox。
Seafile可以部署在客户自己的系统上,此功能提供更强大的安全性,因为密码仅在设置系统和他/她自己的用户而不是云主机组织之间的客户端之间互换。
本文介绍了Ubuntu 16.04上的安装和设置Seafile文件存储服务器。

1.准备工作

我们必须在Ubuntu 16.04上设置基本 LAMP 服务器,并确保其服务正常工作。
如果我们还没有设置 LAMP 服务器,请使用TASKEL快速设置LAMP Server。
使用以下命令安装Tasksel,然后安装Lamp Server。

root@demohost:~# sudo apt-get install tasksel

从shell执行tasksel,然后从列表中选择Lamp Server,然后按'确定'

root@demohost:~# tasksel

系统将提示我们为MySQL提供root密码。
LAMP 服务器安装完成后,请检查Apache,MySQL和PHP版本的状态。

root@demohost:~# service apache2 status
root@demohost:~# service mysql status
root@demohost:~# php -v

Seafile存储设置需要几个必须事先安装的Python模块,否则不会继续安装安装设置。
我们将使用APT-GET安装所需的Python模块。

root@demohost:~# apt-get install sqlite python-simplejson python-setuptools python-imaging python-mysqldb

2.下载Seafile Storage Server Package

创建Seafile配置目录并从官方Seafile下载页面下载Seafile Storage Server Package,我们可以找到其跨平台套餐。

我们将下载通用Linux 64位包,如下所示。

复制链接位置后,使用WGet下载它。

root@demohost:~# mkdir /etc/seafile
root@demohost:~# mkdir /etc/seafile/install
root@demohost:~# cd /etc/seafile/
root@demohost:/etc/seafile#  wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_6.0.7_x86-64.tar.gz
root@demohost:/etc/seafile# mv seafile-server* install/

3.运行Seafile安装程序

要启动安装设置,请更改为我们提取安装包的文件夹,并使Seafile Setup脚本可执行。

root@demohost:/etc/seafile# cd install/seafile-server-6.0.7/
root@demohost:/etc/seafile/install/seafile-server-6.0.7# chmod u+x setup-seafile.sh

现在执行Seafile安装程序脚本。

root@demohost:/etc/seafile/install/seafile-server-6.0.7# ./setup-seafile-mysql.sh
Checking python on this machine ...
Checking python module: setuptools ... Done.
Checking python module: python-imaging ... Done.
Checking python module: python-mysqldb ... Done.
----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at
https://github.com/haiwen/seafile/wiki
Press ENTER to continue
----------------------------------------------------------------
What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] theitroadSeafile
What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] demohost.com
Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/etc/seafile/install/seafile-data" ]
Which port do you want to use for the seafile fileserver?
[ default "8082" ]
------------------------------------------------------
Please choose a way to initialize seafile databases:
------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
[ 1 or 2 ] 1
What is the host of mysql server?
[ default "localhost" ]
What is the port of mysql server?
[ default "3306" ]
What is the password of the mysql root user?
[ root password ]
verifying password of user root ...  done
Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ]
Enter the password for mysql user "seafile":
[ password for seafile ]
Enter the database name for ccnet-server:
[ default "ccnet-db" ]
Enter the database name for seafile-server:
[ default "seafile-db" ]
Enter the database name for seahub:
[ default "seahub-db" ]
--------------------------------
This is your configuration
--------------------------------
server name:            theitroadSeafile
server ip/domain:     demohost.com
seafile data dir:       /etc/seafile/install/seafile-data
fileserver port:        8082
database:                  create new
ccnet database:         ccnet-db
seafile database:        seafile-db
seahub database:       seahub-db
database user:           seafile
--------------------------------
Press ENTER to continue, or Ctrl-C to abort
--------------------------------
Generating ccnet configuration ...
done
Successly create configuration dir /etc/seafile/install/ccnet.
Generating seafile configuration ...
Done.
done
Generating seahub configuration ...
---------------------------------------
Now creating seahub database tables ...
---------------------------------------
creating seafile-server-latest symbolic link ...  done
----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
----------------------------------------------------------------
run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> }
----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
----------------------------------------------------------------
port of seafile fileserver:   8082
port of seahub:                8000
When problems occur, Refer to
https://github.com/haiwen/seafile/wiki  for information

4.启动Seafile Storage Server/Seahub

要启动Seafile Storage Server,请执行Seafile脚本。

root@demohost:~# cd /etc/seafile/install/seafile-server-6.0.7
root@demohost:/etc/seafile/install/seafile-server-6.0.7# ./seafile.sh start
[01/31/17 07:18:55] ../common/session.c(132): using config file /etc/seafile/install/conf/ccnet.conf
Starting seafile server, please wait ...
Seafile server started
Done.

现在开始Seahub。

root@demohost:/etc/seafile/install/seafile-server-6.0.7# ./seahub.sh start
LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...
---------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
---------------------------------------
What is the email for the admin account?
[ admin email ] [email protected]
What is the password for the admin account?
[ admin password ]

Enter the password again:
[ admin password again ]
---------------------------------------
Successfully created seafile admin
---------------------------------------
Seahub is started
Done.

5.在启动时启动Seafile

要轻松控制Seafile Storage Server,请将其设置为Init服务,在启动时创建一个启动脚本/INTESCORC/INIT.D/目录中的SEAFILE/SEAHUB。

root@demohost:~# vi /etc/init.d/seafile

并添加以下内容

#!/bin/bash
# Change the value of "user" to your linux user name
user=root
# Change the value of "seafile_dir" to your path of seafile installation
seafile_dir=/etc/seafile/install
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log
# Change the value of fastcgi to true if fastcgi is to be used
fastcgi=false
# Set the port of fastcgi, default is 8000. Change it if you need different.
fastcgi_port=8000
case "" in
start)
sudo -u ${user} ${script_path}/seafile.sh start >> ${seafile_init_log}
if [ $fastcgi = true ];
then
sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log}
else
sudo -u ${user} ${script_path}/seahub.sh start >> ${seahub_init_log}
fi
;;
restart)
sudo -u ${user} ${script_path}/seafile.sh restart >> ${seafile_init_log}
if [ $fastcgi = true ];
then
sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} >> ${seahub_init_log}
else
sudo -u ${user} ${script_path}/seahub.sh restart >> ${seahub_init_log}
fi
;;
stop)
sudo -u ${user} ${script_path}/seafile.sh  >> ${seafile_init_log}
sudo -u ${user} ${script_path}/seahub.sh  >> ${seahub_init_log}
;;
*)
echo "Usage: /etc/init.d/seafile {start|stop|restart}"
exit 1
;;
esac

创建文件/etc/init/seaile.conf并添加以下内容。

root@demohost:/etc/seafile/install/seafile-server-6.0.7# vi /etc/init/seafile.conf
start on (started mysql and runlevel [2345])
stop on (runlevel [016])
pre-start script
/etc/init.d/seafile start
end script
post-stop script
/etc/init.d/seafile stop
end script

使Seafile脚本可执行。

root@demohost:/etc/seafile/install/seafile-server-6.0.7# sudo chmod +x /etc/init.d/seafile

使用以下命令启动/停止Seafile Server

root@demohost:~# /etc/init.d/seafile stop
root@demohost:~# /etc/init.d/seafile start

6.配置防火墙

配置防火墙以允许入站流量到Seafile服务器。

对于iptables用户:

root@demohost:~# sudo iptables -A INPUT -m state –state NEW -p tcp –dport 8000 -j ACCEPT
root@demohost:~# sudo iptables -A INPUT -m state –state NEW -p tcp –dport 8082 -j ACCEPT

重新启动iptables

root@demohost:~# service iptables restart

对于UFW用户:

root@demohost:~# sudo ufw allow 8000/tcp
root@demohost:~# sudo ufw allow 8082/tcp
root@demohost:~# sudo ufw reload

7.登录Seahub

现在打开我们喜欢的浏览器以访问Seahub仪表板以通过键入FQDN或者Server的IP地址以及已配置的默认端口来管理共享库和文件夹等。
使用我们在SeaHub Server启动期间创建的管理电子邮件地址和密码登录。

我们现在将被重定向到仪表板。

单击"新库"

输入库的名称,如果我们愿意,密码并单击"选择",勾选加密。
我们将被重定向到新创建的目录中以上载文件,创建更多目录等。

8. Seafile客户端配置

Seafile服务器设置已准备就绪。
下载Seafile客户端for Windows 7.我们可以选择根据操作系统安装Seafile客户端。

下载Seafile客户端的安装程序后,执行安装程序。
安装向导将启动。
点击下一步"

选择目标文件夹。

单击"安装"

点击"完成"

在启动菜单中执行Seafile客户端。
选择Seafile文件夹,然后单击"下一步"

输入服务器域以及端口号,电子邮件,密码,然后点击"登录",我们将从Seafile Applet接受我们可以从中浏览文件,上传等的服务器。

双击Seafile Applet的"我的文档"。

提供密码以打开库,然后单击"确定"。

我们现在可以通过将文件拖动到"云文件浏览器"或者单击"+"符号来添加Seafile服务器中的文件。