Menu Close

CentOS+宝塔面板+Seafile 傻瓜式搭建步骤

本文已不适用最新版本的 Seafile 及最新版本的宝塔
请移步 Seafile 官网 https://cloud.seafile.com/published/seafile-manual-cn/ ,有详细的安装教程

首先下载CentOS安装文件并进行全新安装

CentOS下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

目前最新版为 CentOS 7 1810,选“最小安装”,记得打开网络。

安装完 CentOS 后,请用 Putty 登陆 CentOS 系统,方便复制、粘贴命令,不用手工输入。

Putty32位 绿色版官方下载地址:https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip
Putty64位 绿色版官方下载地址: https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip

用 Putty 登陆 CentOS 后,复制下面命令,在 Putty 界面直接鼠标右键就可以把命令粘贴上去了,然后回车,运行

更改系统启动菜单时间为1秒, 系统用 EFI 启动时编辑这个文件:

vi /boot/efi/EFI/centos/grub.cfg

用普通启动时编辑的是这个文件:

vi /boot/grub2/grub.cfg

按“i”,进入编辑模式,把里面两个 time = 5,更改为 time = 1

按“ESC”,输入“:wq”,保存并退出

CentOS 升级到最新内核

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum -y --enablerepo=elrepo-kernel install kernel-ml
grub2-set-default 0
reboot

删除旧内核

yum -y remove kernel kernel-tools

升级系统

yum -y update

安装 wget

yum -y install wget

安装 sendmail:

yum -y install sendmail

安装 nux-dextop 软件库

yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

添加 exfat ntfs 支持

yum -y install exfat-utils fuse-exfat ntfs-3g

安装JAVA、office、pdf、字体

yum -y install jre
yum -y install libreoffice libreoffice-headless libreoffice-pyuno poppler-utils
yum -y install wqy-microhei-fonts wqy-zenhei-fonts wqy-unibit-fonts
yum -y install python-urllib3 #提前安装这个,要不然在新版的宝塔下安装会出错

开启BBR

vi /etc/sysctl.conf

添加如下内容(i 插入,:wq 保存退出)

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

加载系统参数(正常情况下会输出我们之前加入的内容)

sysctl -p

安装宝塔面板 6.8

wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

宝塔安装完成好,把登陆地址、用户名、密码复制下来

打开浏览器,输入地址并登陆 *.*.*.*:8888/******

1 叉掉套件安装界面

2 进入面板设置,设置好端口、安全入口、用户名、密码,以提高安全性

3 进入软件管理,以编译安装的方式安装以下套件:nginx1.14,MariaDB10.3,php7.3,Pure-Ftpd1.0。好了,等上个30-60分钟,可以去找部中日文化交流无码大片欣赏欣赏。

上面3个套件安装好之后,进入 PHP 7.3 管理,点击安装扩展,安装 memcached

安装完成后,再在软件管理中安装 phpmyadmin4.8,日志清理工具,PHP守护

现在请再进入 Putty 界面安装一些组件及依赖,安装的这些都是 SeafilePro 版必要的。如果安装的是社区版 Seafile ,也可以一样,更换一下 Seafile 的安装文件就行了。下面安装的请务必按顺序,为方便明白每一条命令,我都是一个一个分开安装,每个组件安装完之后,要认真看一下提示,是安装成功了还是失败了。有些因为源问题或网络问题等等,会安装失败,得重新安装,一般都不会出错

因为 PIP 默认源太慢了,会造成安装出问题,安装时我加上-i https://pypi.tuna.tsinghua.edu.cn/simple ,把它更改为国内清华大学的镜像地址

yum -y install python-urllib3 #提前安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy
yum -y install python-setuptools 
yum -y install MySQL-python
yum -y install mariadb-server
yum -y install python-memcached
yum -y install python-ldap
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple boto
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
yum -y install ffmpeg
yum -y install ffmpeg-devel
yum -y install libmemcached
yum -y install libmemcached-devel
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pylibmc
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django-pylibmc
mkdir /opt/seafile
cd /opt/seafile/

打开宝塔面板文件管理,把 seafile 的安装文件上传到 /opt/seafile 下面

社区版下载地址:https://www.seafile.com/download/
专业版下载地址(无授权可3用户使用,有两种版本,不要下载到 for ubuntu 的了:https://download.seafile.com/d/6e5297246c/?p=/pro

tar -xzf seafile-pro-server_6.3.12_x86-64.tar.gz
mkdir installed
mv seafile-pro-server_6.3.12_x86-64.tar.gz installed
cd /opt/seafile/seafile-pro-server-6.3.12
./setup-seafile-mysql.sh

回车

输入你想要的服务器命名,随意,3-15个字符

输入你服务器的域名(这里填错会导致你上传文件失败,也可以安装完成后,再在WEB管理页里修改)

输入seafile备份文件的保存路径,可直接回车,取默认路径
(因为我是用两块硬盘,SSD+机械硬盘,在安装系统时,选手动分区,把系统装到SSD,把 /home 分到机械盘做仓库盘,所以我这里是选择 /home/seafile-data)

回车,取默认值

输入1,回车,创建全新数据库

输入 127.0.0.1 ,回车

回车,取默认值

输入数据库的超级密码

回车,取默认值

创建 seafile 用户的数据库密码,请要记住,以后备份、恢复 seafile 要用到

回车、 回车、回车、回车,共输入4个回车,初步安装完成

配置 memcached 及邮件(以gmail为例)

vi /opt/seafile/conf/seahub_settings.py

把下面内容复制进 /opt/seafile/conf/seahub_settings.py:

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    },
    'locmem': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    },
}
COMPRESS_CACHE_BACKEND = 'locmem'
EMAIL_USE_TLS                   = True
EMAIL_HOST                     = 'smtp.gmail.com'
EMAIL_HOST_USER                  = '******@gmail.com'
EMAIL_HOST_PASSWORD                = '邮箱密码'
EMAIL_PORT                     = '587'
DEFAULT_FROM_EMAIL                 = EMAIL_HOST_USER
SERVER_EMAIL                    = EMAIL_HOST_USER

输入“ESC”,“:wq” 保存退出

继续一条一条输入命令:

./seafile.sh start
./seahub.sh start

输入管理员邮箱地址

输入管理员密码、再次输入密码

好了,安装完成,接下来配置 seafile 开机自启动

下载下面这个文件,用文件管理上传到 /etc/sysconfig/ 目录里

http://iwww.gq:8000/f/746960b368fc4da8b712/?dl

下载下面这两个文件,把它们用文件管理上传到 /etc/init.d/ 目录里

http://iwww.gq:8000/f/539f9dc94821432fbf56/?dl
http://iwww.gq:8000/f/255da4fdaa5e4c5eb106/?dl

chmod 550 /etc/init.d/seafile
chmod 550 /etc/init.d/seahub
chkconfig --add seafile
chkconfig --add seahub
chkconfig seahub on
chkconfig seafile on

从 6.3.10 版起,需修改一下这个文件,否则需要通过反代才能访问 Seafile

vi /opt/seafile/conf/gunicorn.conf 

把 bind = “127.0.0.1:8000” 改为 bind = “0.0.0.0:8000”

好了大功告成!

其他

配置用户默认空间和默认历史记录:

编辑文件 /opt/seafile/conf/seafile.conf

[quota]
default = 2

单位为 GB,这个设置对所有用户生效。如果你想对某一特定用户进行容量分配,请以管理员身份登陆 Seahub 网站,在System Admin页面中进行设置

[history]
keep_days = 天数

对所有的资料库设置一个默认的文件历史保留天数

利用宝塔面板计划任务,每月自动回收空间,自动备份文件

创建计划任务,每月1日凌晨5点自动回收空间,把下面填入“脚本内容”:

/opt/seafile/seafile-server-latest/seaf-gc.sh

创建计划任务,每周一凌晨5点30分自动备份文件,更改下面的数据库密码及备份路径并填入“脚本内容”:

mysqldump -h 127.0.0.1 -useafile -p数据库密码 --opt ccnet-db > /备份路径/sefile-backup/ccnet-db.sql.date +"%Y-%m-%d-%H-%M-%S";mysqldump -h 127.0.0.1 -useafile -p数据库密码 --opt seafile-db > /备份路径/sefile-backup/seafile-db.sql.date +"%Y-%m-%d-%H-%M-%S";mysqldump -h 127.0.0.1 -useafile -p数据库密码 --opt seahub-db > /备份路径/sefile-backup/seahub-db.sql.date +"%Y-%m-%d-%H-%M-%S";rsync -azv --delete /opt/seafile /备份路径/sefile-backup

好了,尽情享用吧,谢谢 seafile 开发团队给我们免费带来这么好用的程序,希望越来越完善!

25 Comments

      • 是的,主服日常使用,备份服只实时备份。
        请问seafile我安装在opt/seafile 如果要换服务器的话,是不是打包这个目录到新的服务器上可以直接运行使用吗? 新服上依赖已装好!

        • admin

          关于另建备份服务器进行实时备份还没折腾过,不知道原因。
          更换服务器,如果安装时 seafile-data 这个路径没更改过,除了打包 /opt/seafile 这个目录,还要备份数据库这3个数据表 seahub-db、seafile-db、ccnet-db ,再把它们导入新服务器的数据库。新数据库上要创建和老数据库一样的用户和密码,在老服务器上 /opt/seafile/conf/seafile.conf 这个文件里可以查看数据库的用户名和密码。

  1. King

    在 RHEL/CentOS 上,脚本 /etc/re.local 会在系统启动时被执行,所以可以通过这个脚本来实现 seafile/seahub 开机自启。

    确定您的 python 版本 (python 2.6 或者 2.7)
    which python2.6 # 或者 “which python2.7”
    在 /etc/rc.local 中添加 python2.6(2.7) 的目录到 PATH,并且添加 seafile/seahub 的启动命令
    # Assume the python 2.6(2.7) executable is in “/usr/local/bin”
    PATH=$PATH:/usr/local/bin/

    # Change the value of “user” to your linux user name
    user=haiwen

    # Change the value of “seafile_dir” to your path of seafile installation
    # usually the home directory of $user
    seafile_dir=/data/haiwen
    script_path=${seafile_dir}/seafile-server-latest

    sudo -u ${user} ${script_path}/seafile.sh start > /tmp/seafile.init.log 2>&1
    sudo -u ${user} ${script_path}/seahub.sh start > /tmp/seahub.init.log 2>&1

    https://bbs.seafile.com/t/topic/9576

    已解决 谢谢!

    • admin

      我觉得我这个方法更方便一点,我记得在论坛有发贴说过。

      如果 seafile 服务是以 “seafile” 用户启动,安装路径在 /opt/seafile 的话,下载这个文件 seafile ,复制进 /etc/init.d/ 下,然后运行下面命令就可以自启动了

      chmod 550 /etc/init.d/seafile
      chkconfig –add seafile
      chkconfig seafile on

  2. ray johnson

    请问我按你的步骤安装了seafile-pro-server_7.0.7后,Seafile server started和Seahub is started都是正常,但在浏览器输入http://服务器ip:8000后,无法访问,这个怎么处理呢?

  3. mian

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy
    DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won’t be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
    Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
    Collecting moviepy
    From cffi callback :
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/site-packages/OpenSSL/SSL.py”, line 309, in wrapper
    _lib.X509_up_ref(x509)
    AttributeError: ‘module’ object has no attribute ‘X509_up_ref’
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),)’: /simple/moviepy/
    From cffi callback :
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/site-packages/OpenSSL/SSL.py”, line 309, in wrapper
    _lib.X509_up_ref(x509)
    AttributeError: ‘module’ object has no attribute ‘X509_up_ref’
    WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),)’: /simple/moviepy/
    From cffi callback :
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/site-packages/OpenSSL/SSL.py”, line 309, in wrapper
    _lib.X509_up_ref(x509)
    AttributeError: ‘module’ object has no attribute ‘X509_up_ref’
    WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),)’: /simple/moviepy/
    From cffi callback :
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/site-packages/OpenSSL/SSL.py”, line 309, in wrapper
    _lib.X509_up_ref(x509)
    AttributeError: ‘module’ object has no attribute ‘X509_up_ref’
    WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),)’: /simple/moviepy/
    From cffi callback :
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/site-packages/OpenSSL/SSL.py”, line 309, in wrapper
    _lib.X509_up_ref(x509)
    AttributeError: ‘module’ object has no attribute ‘X509_up_ref’
    WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),)’: /simple/moviepy/
    From cffi callback :
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/site-packages/OpenSSL/SSL.py”, line 309, in wrapper
    _lib.X509_up_ref(x509)
    AttributeError: ‘module’ object has no attribute ‘X509_up_ref’
    Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/moviepy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=’pypi.tuna.tsinghua.edu.cn’, port=443): Max retries exceeded with url: /simple/moviepy/ (Caused by SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),)) – skipping
    ERROR: Could not find a version that satisfies the requirement moviepy (from versions: none)
    ERROR: No matching distribution found for moviepy
    最后出现了这个error,我是继续yum -y install python-setuptools吗?我是第一次安装,麻烦讲解下

    • admin

      您好,其实我也看不懂,我也是小白一个 :)
      不知你的基础环境是跟这文所说的一样吗?我刚刚试过,安装这个 moviepy 并不会出错
      你打的命令有没误?要不你再试试 pip install moviepy 这样安装
      跳过安装也行,就 moviepy 相关的功能不能实现,以后再想办法安装上去

      • mian

        ERROR: Command errored out with exit status 1:
        command: /bin/python -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-6sVI_d/numpy/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-6sVI_d/numpy/setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ egg_info –egg-base pip-egg-info
        cwd: /tmp/pip-install-6sVI_d/numpy/
        Complete output (5 lines):
        Traceback (most recent call last):
        File “”, line 1, in
        File “/tmp/pip-install-6sVI_d/numpy/setup.py”, line 31, in
        raise RuntimeError(“Python version >= 3.5 required.”)
        RuntimeError: Python version >= 3.5 required.
        —————————————-
        ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

        pip install moviepy 后是下载三个文件后就出现上面这错误,顺序按照上面一步步来的,宝塔面板最新的6.9.8免费版,没办法,跳过先安装其他。
        那么晚了还没休息呀,谢谢回复

        • admin

          我试着全新安装,也出现这错误,是python版本不对。不过粗略看了一下最新的官方脚本,已经不需装这个软件了。其他还减少了一些,增加了一些。明天有空的话再详细看看官方的安装说明和脚本,看增删了什么

发表评论

电子邮件地址不会被公开。 必填项已用*标注