您的位置:首页 > 其它

Seafile server安装手册

2015-08-24 15:13 399 查看
Seafile server安装手册
部署 Seafile 服务器(使用 MySQL)到http://www.seafile.com/download下载最新的服务器安装包.
部署和目录设计公司的名称为"kaiqigu",你也已经下载seafile-server_1.4.0_x86-64.tar.gz 到你的home 目录下。 在这里建议这样的目录结构:
mkdir kaiqigumv seafile-server_1.4.0_x86-64.tar.gz kaiqigu#将 seafile-server_1.4.0_x86-64.tar.gz 移动到 kaiqigu 目录下后cd kaiqigutar -xzf seafile-server_1.4.0_x86-64.tar.gzmkdir installedmv seafile-server_1.4.0_x86-64.tar.gz installed现在,你的目录看起来应该像这样:
# kaiqigu├── installed│ └── seafile-server_1.4.0_x86-64.tar.gz└── seafile-server-1.4.0 ├──reset-admin.sh ├── runtime ├── seafile ├── seafile.sh ├── seahub ├── seahub.sh ├──setup-seafile.sh └── upgrade这样设计目录的好处在于 1:和 seafile 相关的配置文件都可以放在 kaiqigu 目录下,便于集中管理. 2:后续升级时,你只需要解压最新的安装包到"kaiqigu"目录下. 这样你可以重用"kaiqigu"目录下已经存在的配置文件,而不用重新配置.安装 Seafile 服务器安装前的准备工作

系统账号设置

安装好 CentOS 6.5 的基本服务器,首先需要设置接下来会使用到的 admin 系统账号,并设置好 ssh 的公钥登录,方便接下来的部署。

使用 root 账号登录(或者,具有 root 权限的账号)登录后,为确保 sudo 已经安装了,执行以下命令,如果提示已经安装,则无需任何操作,如果没有安装,则进行安装:

# yum install sudo 接下来,创建 admin 系统账号:

# useradd admin# mkdir /home/admin/.ssh# chown admin:admin /home/admin/.ssh/# chmod 0700 /home/admin/.ssh/ 然后,在 .ssh 目录中构建 authorized_keys 文件,方式不限,使用 vi 或者 echo 都行,之后,再设置好 authorized_keys 文件的所有者和属性,操作如下:
# cd /home/admin/.ssh# echo "xxxxxxx(公钥内容)"> authorized_keys# chown admin:admin authorized_keys# chmod 0600 authorized_keys为方便接下来的操作,赋予 admin 用户 sudo 的权限:# echo "admin ALL=(ALL) NOPASSWD:ALL">> /etc/sudoers

更新系统软件包

用 admin 账号登录后,使用 yum 机制安装所需用到的软件包:
$ sudo su# yum install epel-release# yum install zlib-devel bzip2-devel ncurses-developenssl-devel# yum install make gcc-c++ cmake bison-devel# yum install swig patch sqlite-devel readlinereadline-devel# yum install rsync nload

建立自用目录

# chown admin:admin /data
以 admin 账户登录,执行

$ cd /data$ mkdir soft安装Seafile 服务器之前,请确认已安装以下软件l Nginxl MySQL serverl Python2.7 Web Server 部分该部分内容,适用于需要安装 nginx 的 Web Server 服务器上,不需要安装 nginx 的服务器,可以忽略。
在没有特殊需求的情况下,采用 nginx 官方发布的预编译版本进行安装,方便将来的升级维护(需要访问外网):
$ cd /data/soft$ wgethttp://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm$ sudo yum installnginx-release-centos-6-0.el6.ngx.noarch.rpm安装了 nginx 软件仓库后,添加的文件为:
/etc/yum.repos.d/nginx.repo
/etc/pki/rpm-gpg/RPM-GPG-KEY-nginx

紧接着安装 nginx:

$ sudo yum install nginx 安装完成后,相关的目录和文件有:/etc/rc.d/init.d/nginx# 自启动脚本
/usr/sbin/nginx
/etc/nginx/# 配置文件目录
/var/log/nginx/# 默认的日志目录
/var/run/nginx.pid
/var/run/nginx.lock
/var/cache/nginx/# 相关临时文件目录
管理 nginx :(启动、重启、停止和配置测试)# service nginx start# service nginx restart# service nginx stop# service nginx configtest

DB Server 部分

如无特殊应用,使用 centos 默认的 mysql-server (版本为 5.1.73)安装即可。

$ sudo su# yum install mysql-server
启动 mysql

# service mysqld start
修改 root 账号密码

# /usr/bin/mysqladmin -u root password'new-password'
修改mysql数据存放目录

# /etc/rc.d/init.d/mysqld stop # cd /var/lib # cp -a mysql/ /data/ # vim /etc/my.cnf 修改datadir=/var/lib/mysql为datadir=/data/mysql注释掉socket=/var/lib/mysql/mysql.sock一行,添加socket=/data/mysql/mysql.sock # vim /etc/rc.d/init.d/mysqld 注释掉datadir="$result"添加datadir="/data/mysql" # vim /usr/bin/mysqld_safe 修改DATADIR="/var/lib/mysql"为DATADIR="/data/mysql" 建立一个mysql.sock的链接 # ln -s /data/mysql/mysql.sock/var/lib/mysql/mysql.sock # /etc/rc.d/init.d/mysqld start 进入mysql查看数据目录sudo mysql -uroot -p xxxmysql>show variables like '%dir%'; 查看datadir目录是否为/data/mysql

Python Server 部分

该部分内容,适用需要安装 Python 来跑游戏后端应用的服务器,不需要安装 Python 的服务器,可以忽略。
CentOS6.5 默认安装的是 Python 2.6.6 ,我们需要 2.7.x 系列的,尤其是 2.7.8 以上的,运行所需内存降了很多。所以,选择手动编译安装 Python2.7.8 。
在有互联网公网连接的情况下,使用 admin 账号执行如下操作。

编译安装 Python:
$ cd /data/soft$ wgethttps://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz$ tar xzvf Python-2.7.10.tgz$ cd Python-2.7.10$ ./configure --prefix=/usr/local$ make$ sudo make install
安装 setuptools
$ cd /data/soft$ wgethttps://pypi.python.org/packages/source/s/setuptools/setuptools-15.2.tar.gz$ tar xzvf setuptools-15.2.tar.gz$ cd setuptools-15.2$ sudo /usr/local/bin/python2.7 setup.pyinstalliPython
安装 pip
$ wgethttps://pypi.python.org/packages/source/p/pip/pip-6.1.1.tar.gz$ tar xzvf pip-6.1.1.tar.gz$ cd pip-6.1.1$ sudo /usr/local/bin/python2.7 setup.pyinstall使用 pip 安装剩余的需要的组件
$ sudo su# /usr/local/bin/pip2.7 install redis# /usr/local/bin/pip2.7 install M2Crypto# /usr/local/bin/pip2.7 installbackports.ssl_match_hostname# /usr/local/bin/pip2.7 install greenlet# /usr/local/bin/pip2.7 installopenpyxl==1.7.0 # /usr/local/bin/pip2.7 install pysqlite# /usr/local/bin/pip2.7 install readline # /usr/local/bin/pip2.7 install tornadogevent psutil supervisor# /usr/local/bin/pip2.7 install ipython在没有互联网公网连接的情况,需要先在能联网的机器上在 pypi.python.org 网站上将以上软件的源码包都下载下来,然后,复制过来,逐个解压,并通过运行 setup.py 进行安装。

安装 MySQL-python

Python访问 MySQL 数据库,需要安装相应的客户端软件包,通常会使用MySQL-python 这个软件包,而这个包,需要 mysql 的开发文件。
可以采用如下的步骤进行安装:
# yum install mysql-devel# /usr/local/bin/pip2.7 installMySQL-python

安装 Imaging

# wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz# tar -xzvf Imaging-1.1.7.tar.gz# cd Imaging-1.1.7# /usr/local/bin/python2.7 setup.pyinstall 安装seafile-server-4.1.2cdseafile-server-4.1.2./setup-seafile-mysql.sh #运行安装脚本并回答预设问题如果你的系统中没有安装上面的某个软件,那么 Seafile初始化脚本会提醒你安装相应的软件包.

该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数

在这里, 你会被要求选择一种创建 Seafile 数据库的方式:-------------------------------------------------------Please choose a way toinitialize seafile databases:------------------------------------------------------- [1] Create newccnet/seafile/seahub databases[2] Use existingccnet/seafile/seahub databases具体选择哪项, 取决于你是否拥有根密码.
l 如果选择1, 你需要提供根密码. 脚本程序会创建数据库和用户。l 如果选择2,ccnet/seafile/seahub 数据库应该已经被你(或者其他人)提前创建。

如果选择 [1] Create new ccnet/seafile/seahub databases,你会被问三个问题:




如果你选择[2] Use existing ccnet/seafile/seahub databases,
你会被问到如下三个问题:




如果安装正确完成,你会看到下面这样的输出

现在你的目录结构看起来应该是这样:
#treehaiwen -L 2haiwen├──ccnet # configuration files│ ├── ccnet.conf│ ├── mykey.peer│ ├── PeerMgr│ └── seafile.ini├──installed│ └──seafile-server_1.8.2_x86-64.tar.gz├──seafile-data│ └── seafile.conf├──seafile-server-1.8.2 # active version│ ├── reset-admin.sh│ ├── runtime│ ├── seafile│ ├── seafile.sh│ ├── seahub│ ├── seahub.sh│ ├── setup-seafile.sh│ └── upgrade├──seafile-server-latest # symbolic link toseafile-server-1.8.2├──seahub-data│ └── avatars├──seahub_settings.py # optional configfile└──seahub_settings.pycseafile-server-latest文件夹为指向当前Seafile 服务器文件夹的符号链接. 将来你升级到新版本后,升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹..
启动 Seafile 服务器和 Seahub 网站在 seafile-server-1.8.2 目录下,运行如下命令
启动 Seafile:
./seafile.shstart # 启动 Seafile 服务启动 Seahub
./seahub.shstart <port> # 启动 Seahub 网站 (默认运行在8000端口上)小贴士:你第一次启动 seahub 时,seahub.sh脚本会提示你创建一个seafile 管理员帐号。服务启动后, 打开浏览器并输入以下地址 http://192.168.1.111:8000/你会被重定向到登陆页面. 输入你在安装 Seafile 时提供的用户名和密码后,你会进入 Myhome 页面,新建资料库.
恭喜!现在你已经成功的安装了 Seafile 服务器.在另一端口上运行 Seahub如果你不想在默认的 8000 端口上运行 Seahub, 而是想自定义端口(比如8001)中运行,请按以下步骤操作:
关闭 Seafile 服务器
./seahub.shstop # 停止 Seafile 进程./seafile.shstop # 停止 Seahub更改haiwen/ccnet/ccnet.conf文件中SERVICE_URL 的值(假设你的 ip 或者域名时192.168.1.100),如下:
SERVICE_URL = http://192.168.1.100:8001重启 Seafile 服务器
./seafile.sh start # 启动 Seafile 服务./seahub.sh start 8001 # 启动 Seahub 网站(运行在8001端口上)
关闭/重启 Seafile 和 Seahub关闭
./seahub.sh stop # 停止 Seahub./seafile.sh stop # 停止 Seafile 进程重启
./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub如果停止/重启的脚本运行失败大多数情况下 seafile.sh seahub.sh 脚本可以正常工作。如果遇到问题:
使用pgrep命令检查 seafile/seahub 进程是否还在运行中
pgrep -f seafile-controller # 查看 Seafile 进程pgrep -f "manage.py run_gunicorn" # 查看 Seahub 进程
使用pkill命令杀掉相关进程
pkill -f seafile-controller # 结束 Seafile 进程pkill -f "manage.py run_gunicorn" # 结束 Seafile 进程备份步骤你所有的资料库数据都存储在 kaiqigu目录。Seafile 也在数据库中存储一些重要的元数据。数据库的命名和存储路径取决于你所使用的数据库。对于 MySQL, 数据库由管理员来创建,所以不同的人部署,可能会有不同的文件名。大体而言,有如下三个数据库会被创建:· ccnet-db:包含用户和群组信息· seafile-db:包含资料库元数据信息· seahub.db:包含网站前端(seahub)所用到的数据库表信息 备份需要如下三步:· 可选步: 如果你选择 SQLite 作为数据库,首先停掉 Seafile 服务器;【这里不介绍SQLite数据库备份】· 备份数据库;· 备份存放 Seafile 数据的目录;这里假设你的 Seafile 数据位于 /data/kaiqigu目录下,并且你想将其备份到 /backup目录(/backup目录可以是 NFS(网络文件系统),可以是另一台机器的 Windows 共享,或者是外部磁盘)。请在/backup目录下创建如下目录结构:/backup----databases/ 包含数据库备份----data/ 包含 Seafile 数据备份备份数据库这里建议你每次将数据库备份到另一个单独文件,并且不要覆盖最近一周来备份过的旧数据库文件。MySQL假设你的数据库名分别为ccnet-db, seafile-db和 seahub-db。mysqldump会自动锁住表,所以在你备份 MySql 数据库的时候,不需要停掉 Seafile 服务器。通常因为数据库表非常小,所以执行以下命令备份不会花太长时间。Mysqldump-h[mysqlhost] -u[username] -p[password] --opt ccnet-db >/backup/databases/ccnet-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump-h [mysqlhost] -u[username] -p[password] --opt seafile-db >/backup/databases/seafile-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump-h [mysqlhost] -u[username] -p[password] --opt seahub-db >/backup/databases/seahub-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`备份 Seafile 资料库数据由于所有的数据文件都存储在 /data/kaiqigu目录, 备份整个目录即可。你可以直接拷贝整个目录到备份目录,或者你也可以用 rsync 做增量备份。直接拷贝整个数据目录,cp-R /data/kaiqigu /backup/data/kaiqigu-`date +"%Y-%m-%d-%H-%M-%S"`这样每次都会产生一个新的备份文件夹,完成后,可以删掉旧的备份。如果你有很多数据,拷贝整个数据目录会花很多时间,这时你可以用rsync做增量备份。rsync-az /data/kaiqigu /backup/data这个命令数据备份到 /backup/data/kaiqigu下。让拷贝和 rsync 过程成功结束是非常重要的,否则你最近的一些数据将会丢失。注意: 因为 ccnet/ccnet.conf文件中的 ID 值必须和 ccnet/mykey.peer中值的 SHA1 值保持一致。所以不要忘记拷贝 ccnet/mykey.peer文件。恢复备份如果你当前的 Seafile 服务器已经坏掉,将使用另一台机器来提供服务,需要恢复数据:· 假设在新机器中,Seafile 也被部署在了 /data/kaiqigu目录中,拷贝 /backup/data/kaiqigu到新机器中即可。· 恢复数据库。恢复数据库现在你已经拥有了数据库备份文件,你可以按如下步骤来进行恢复。MySQLmysql -u[username] -p[password] ccnet-db <ccnet-db.sql.2013-10-19-16-00-05 Mysql-u[username] -p[password] seafile-db <seafile-db.sql.2013-10-19-16-00-20 mysql -u[username] -p[password]seahub-db.sql.2013-10-19-16-01-05
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息