在RHEL / CentOS / SL 7.x / 6.x中使用MySQL数据库安装Seafile(安全云存储)

Seafile是用Python编写的文件共享和同步的支持,团队协作和使用客户端加密隐私保护先进的开源协作的云存储应用。 它作为一个多平台文件,与在所有主要平台(Linux,Raspberry Pi,Windows,Mac,iPhone和Android)上运行的客户端同步,可以轻松地与本地服务(如LDAP和WebDAV)集成,或者可以使用高级网络服务和数据库,如MySQL,SQLite,PostgreSQL,Memcached,Nginx或Apache Web服务器。

在Linux中安装Seafile

本教程将指导您一步步上部署MySQL数据库RHEL / CentOS的/ Linux的科学7.x的/ 6.x的一步Seafile服务器安装,具有开机初始化脚本默认Seafile端口上运行的服务器(8000 / TCP )和默认HTTP事务端口(80 / TCP),创建必要的防火墙规则以打开所需的端口。

要求

  1. 最小的CentOS 6.5的安装使用静态IP地址。
  2. MySQL / MariaDB数据库
  3. Python 2.6.5+或2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Python成像
  7. Python-mysqldb

此安装过程的CentOS 6.4 64位系统上测试,但也可以在其它Linux发行版与INIT启动脚本从一个分布的不同而不同规范使用。

第1步:安装Python模块

1.首先做一个系统更新 ,然后安装使用下列命令所有必需的Python模块。

# yum upgrade
# yum install python-imaging MySQL-python python-simplejson python-setuptools

2.如果您使用的是Debian或者Ubuntu的服务器下一个命令安装所有的Python模块。

$ sudo apt-get update
$ sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

第2步:安装Seafile服务器

3.在所有的Python模块都安装创建将用于举办Seafile服务器的配置,并在其主页目录中的所有数据强密码的新系统的用户,然后切换到新创建的用户帐户。

# adduser seafile
# passwd seafile
# su -seafile

创建Seafile用户

4.然后登录到MySQL数据库和创建三个数据库,一个每Seafile服务器组件: 服务器CCNET,seafile 服务器seahub与所有数据库的单个用户。

$ mysql -u root -p
mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'password';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

创建Seafile数据库

5.现在是时候下载和安装Seafile服务器 转到Seafile 官方下载页面,并使用wget命令,抢你的服务器架构的最后.TAR Linux文件发布,然后将其解压到先前创建你的家Seafile用户并进入Seafile提取目录。

$ wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
$ tar xfz seafile-server_3.0.4_x86-64.tar.gz
$ cd seafile-server_3.0.4/

下载Seafile

6.使用MySQL数据库运行setup-seafile-mysql.sh初始化脚本安装Seafile服务器并使用下面的配置选项回答所有问题,该脚本将验证所有的Python存在所需的模块后。

$ ./setup-seafile-mysql.sh
  1. 你的服务器的名称是什么? =选择一个描述性的名称 (不允许有空格)。
  2. 什么是服务器的IP或域? =输入服务器IP地址或有效的域名
  3. 哪个端口要使用ccnet服务器? =按[Enter] -离开它默认- 10001。
  4. 你想在哪里放置seafile数据? =按[Enter] -默认位置将是你的$ HOME / seafile数据目录。
  5. 哪个端口要用于seafile服务器? =按[Enter] -离开它默认- 12001。

运行Seafile MySQL脚本

  1. 哪个端口要用于seafile httpserver? =按[Enter] -离开它默认- 8082。
  2. 请选择一个方法来初始化seafile数据库:=选择1提供MySQL默认凭据:本地主机,3306和根密码。
  3. 对于seafile的MySQL用户输入名称:= seafile(如果你创建的其他用户名输入用户名 )和seafile MySQL用户的密码。
  4. 在CCNET服务器,seafile服务器和数据库seahub正好碰到[Enter]键-默认值。

配置Seafile for MySQL

MySQL Seafile配置

Seafile Server成功安装后,它将生成一些有用的信息,例如需要在防火墙上打开哪些端口,以允许外部连接以及处理哪些脚本以启动服务器。

Seafile安装确认

第3步:打开防火墙并创建Seafile初始化脚本

7.从开始本地脚本Seafile服务器进行测试之前,请切换到root帐号和开放iptables防火墙配置文件所在的/ etc / sysconfig中/系统路径上,并添加以下行规则之前,请先拒绝行,然后重新启动iptables来应用新规则。

$ su - root
# nano /etc/sysconfig/iptables

附加以下规则。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT

打开Seafile的端口

重新启动iptables以使用以下命令应用规则。

# service iptables restart

:如果您更改Seafile在安装过程中的标准端口相应地更新防火墙iptables规则。

8.现在是时候来测试Seafile服务器。 切换到Seafile用户和seafile服务器的目录,并使用seafile.shseahub.sh脚本启动服务器。

第一次启动seahub.sh脚本,使用您的电子邮件地址Seafile服务器创建一个管理帐户,并选择管理员帐户的强密码,特别是如果你在生产环境中部署此配置。

# su - seafile
$ cd seafile-server-latest/
$ ./seafile.sh start
$ ./seahub.sh start

启动Seafile服务器

9.服务器启动成功后,打开浏览器并使用HTTP协议,然后登录使用您在上一步创建管理员帐户浏览到您的服务器的IP地址或域名端口8000。

http://system_IP:8000
OR 
http://domain_name:8000

Seafile登录屏幕

Seafile仪表板

10.在第一次测试的配置,停止Seafile服务器并创建一个初始化脚本,将帮助您更轻松的全过程管理,就像任何其他的Linux系统守护进程。

$ ./seafile.sh stop
$ ./seahub.sh stop
$ su - root
# nano /etc/init.d/seafile

加入这个初始化脚本内容如下-如果安装其他系统用户Seafile确保相应地更新用户和路径- $ USER -c线。

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.
# source function library
. /etc/rc.d/init.d/functions
start() {
echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}
stop() {
echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}
restart() {
echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: $0 start stop restart"
;;
esac

init文件已创建11后,确保它具有执行权限,并使用启动管理程序, 停止重新启动交换机。 现在你可以在系统中添加Seafile服务启动时使用chkconfig命令。

# chmod +x /etc/init.d/seafile
# service seafile start 
# service seafile stop 
# service seafile restart
# chkconfig seafile on | off
# chkconfig --list seafile

启动Seafile服务

在启动时添加Seafile服务

12.默认情况下Seafile服务器使用8000网上交易/ TCP HTTP端口。 如果你想从标准的HTTP端口上的浏览器访问服务器Seafile使用的启动端口80上的服务器下面的init脚本(注意,开始在1024以下的端口的服务需要root权限)。

# nano /etc/init.d/seafile

加入这个初始化脚本下面的内容,以标准的HTTP端口上启动Seafile。 如果安装其他系统用户Seafile确保相应地更新用户和路径- $ USER -c$ HOME线。

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.
# source function library
. /etc/rc.d/init.d/functions
start() {
echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}
stop() {
echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}
restart() {
echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: $0 start stop restart"
;;
Esac

13.如果您以前在端口8000开始Seafile请确保所有的进程被杀死,启动端口80上的服务器。

# chmod +x /etc/init.d/seafile
# service seafile start | stop | restart

打开浏览器并将其定向到以下地址。

http://system_ip 
OR
http://domain_name.tld

在端口80上启动Seafile服务

Seafile登录面板

14.您也可以验证哪些端口Seafile使用netstat命令运行。

# netstat -tlpn

验证Seafile服务

而已! Seafile可以愉快地替代其他的云协作和文件同步平台,如Dropbox的市民,Owncloud,Pydio,OneDrive,等你的组织,被设计为更好的团队合作和在你的存储与用户空间的先进的安全完全控制。

在我的即将到来的文章中,我将介绍如何在Linux和Windows系统上安装Seafile客户端,以及如何连接到Seafile Server。 直到然后,请继续关注youcl,不要忘记给你宝贵的意见。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏