设为首页 收藏本站
查看: 565|回复: 0

[经验分享] Seafile server安装手册

[复制链接]

尚未签到

发表于 2018-10-14 14:24:44 | 显示全部楼层 |阅读模式
  Seafile server安装手册
  部署 Seafile 服务器(使用 MySQL)
  到http://www.seafile.com/download下载最新的服务器安装包.
  部署和目录设计
  公司的名称为"kaiqigu",你也已经下载seafile-server_1.4.0_x86-64.tar.gz 到你的home 目录下。 在这里建议这样的目录结构:
  mkdir kaiqigu
  mv seafile-server_1.4.0_x86-64.tar.gz kaiqigu
  #将 seafile-server_1.4.0_x86-64.tar.gz 移动到 kaiqigu 目录下后
  cd kaiqigu
  tar -xzf seafile-server_1.4.0_x86-64.tar.gz
  mkdir installed
  mv 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  Nginx
  l  MySQL server
  l  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 xxx
  mysql>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.pyinstall
  iPython
  安装 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.2
  cdseafile-server-4.1.2
  ./setup-seafile-mysql.sh  #运行安装脚本并回答预设问题
  如果你的系统中没有安装上面的某个软件,那么 Seafile初始化脚本会提醒你安装相应的软件包.

  该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  在这里, 你会被要求选择一种创建 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,
  你会被问到如下三个问题:

http://blog.51cto.com/e/u261/themes/default/images/spacer.gif如果安装正确完成,你会看到下面这样的输出


  现在你的目录结构看起来应该是这样:
  #treehaiwen -L 2
  haiwen
  ├──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.pyc
  seafile-server-latest文件夹为指向当前Seafile 服务器文件夹的符号链接. 将来你升级到新版本后,升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹..
  启动 Seafile 服务器和 Seahub 网站
  在 seafile-server-1.8.2 目录下,运行如下命令
  启动 Seafile:
  ./seafile.shstart # 启动 Seafile 服务
  启动 Seahub
  ./seahub.shstart   # 启动 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文件中的>  恢复备份
  如果你当前的 Seafile 服务器已经坏掉,将使用另一台机器来提供服务,需要恢复数据:
  ·        假设在新机器中,Seafile 也被部署在了 /data/kaiqigu目录中,拷贝 /backup/data/kaiqigu到新机器中即可。
  ·        恢复数据库。
  恢复数据库
  现在你已经拥有了数据库备份文件,你可以按如下步骤来进行恢复。
  MySQL
  mysql -u[username] -p[password] ccnet-db

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-621570-1-1.html 上篇帖子: binlog-rollback.pl 在线恢复update 和delete不加条件误操作sql-10931853 下篇帖子: 如何使Excel与SQL Server数据交互?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表