Seafile 是一个开源的文件云存储平台,解决文件集中存储、同步、多平台访问的问,允许用户创建“群组”,在群组内共享和同步文件,方便了团队协同工作。
# 在 CentOS 7 下# (MariaDB 是 MySQL 的分支)yum install mariadb-server# 如果以来有问题# 尝试在后面加上参数 --skip-brokenyum install python-setuptools python-imaging python-ldap MySQL-python python-memcached python-urllib3
yum 安装 mysqldb-python 后面seafile安装报错,需要通过 python 的工具pip来安装MySQL-python pip install MySQL-python
在这里下载seafile-server_6.0.7_x86-64.tar.gz,你可以选择你需要的版本
# 查看系统版本cat /proc/versionwget http://download-cn.seafile.com/seafile-server_6.0.7_x86-64.tar.gz# 解压tar -zxvf seafile-server_6.0.7_x86-64.tar.gz# 解压放到一个目录cd seafile-server-*
我的数据库使用MySQL,你需要先在数据库中建立一个 MySQL 用户 seafile
。
# 登录MySQL创建一个用户mysql -uroot -p# 创建用户设置密码mysql> Create USER 'seafile'@'%' IDENTIFIED BY '123456';# 执行下面语句立即生效mysql> flush privileges;
运行./setup-seafile-mysql.sh
安装脚本并回答预设问题
./setup-seafile-mysql.shChecking 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 athttps://github.com/haiwen/seafile/wikiPress ENTER to continue-----------------------------------------------------------------What is the name of the server? It will be displayed on the client.3 - 15 letters or digits[ server name ] <填写 seafile 服务器的名字>What is the ip or domain of the server?For example: www.mycompany.com, 192.168.1.101[ This server's ip or domain ] <seafile 服务器的 IP 地址或者域名>Where do you want to put your seafile data?Please use a volume with enough free space[ default "/home/www/jinpans/seafile-data" ]Which port do you want to use for the seafile fileserver?[ default "8082" ] [ seafile fileserver 使用的 TCP 端口 ]-------------------------------------------------------Please choose a way to initialize seafile databases:-------------------------------------------------------[1] Create new ccnet/seafile/seahub databases你需要提供根密码. 脚本程序会创建数据库和用户。[2] Use existing ccnet/seafile/seahub databasesccnet/seafile/seahub 数据库应该已经被你(或者其他人)提前创建。[ 1 or 2 ] <选择一种创建 Seafile 数据库的方式>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 ] <输入root密码>verifying password of user root ... doneEnter the name for mysql user of seafile. It would be created if not exists.[ default "seafile" ] <默认seafile的MySQL用户名,可以使用默认>Enter the password for mysql user "seafile":[ password for seafile ] <输入seafile密码>verifying password of user seafile ... doneEnter 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: seafile 服务器的名字server ip/domain: 192.168.1.101seafile data dir: /home/www/jinpans/seafile-datafileserver port: 8082database: create newccnet database: ccnet-dbseafile database: seafile-dbseahub database: seahub-dbdatabase user: seafile---------------------------------Press ENTER to continue, or Ctrl-C to abort---------------------------------Generating ccnet configuration ...doneSuccessly create configuration dir /home/www/jinpans/ccnet.Generating seafile configuration ...Done.doneGenerating 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: 8082port of seahub: 8000When problems occur, Refer tohttps://github.com/haiwen/seafile/wiki
上面算是结束了,然后在 seafile-server_6.0.7 目录下面,运行如下命令
./seafile.sh start # 启动 Seafile 服务
./seahub.sh start <port> # 启动 Seahub 网站 (默认运行在8000端口上)# 你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号。LC_ALL is not set in ENV, set to en_US.UTF-8Starting 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 ] <这里输入邮箱地址>What is the password for the admin account?[ admin password ] <这里输入密码>Enter the password again:[ admin password again ] <这里确认输入密码>----------------------------------------Successfully created seafile admin----------------------------------------Seahub is startedDone.
然后你可以打开它了:
http://192.168.1.111:8000/
备份数据库,假设你的数据库名分别为 ccnet-db
, seafile-db
和 seahubdb
,下面命令分别备份这三个数据库,同时要注意备份需要先建立好文件夹。
mysqldump -h localhost -uroot -p --opt ccnet-db > ./backup/databases/ccnet-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`mysqldump -h localhost -uroot -p --opt seafile-db > ./backup/databases/seafile-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`mysqldump -h localhost -uroot -p --opt seahub-db > ./backup/databases/seahub-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
备份文件
nohup cp -R ./seafile-data ./backup/data/seafile-data-`date +"%Y-%m-%d-%H-%M-%S"` 2>&1 &nohup cp -R ./seahub-data ./backup/data/seahub-data-`date +"%Y-%m-%d-%H-%M-%S"` 2>&1 &[1] 17294
mysql -uroot -p ccnet-db < ccnet-db.sql.2017-11-29-11-36-06mysql -uroot -p seafile-db < seafile-db.sql.2017-11-29-11-36-06mysql -uroot -p seahub-db < seahub-db.sql.2017-11-29-11-36-06
./seahub.sh stop # 停止 Seafile 进程./seafile.sh stop # 停止 Seahub./seafile.sh start # 启动 Seafile 服务./seahub.sh start 8001 # 启动 Seahub 网站 (运行在8001端口上)./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub
创建 systemd 服务文件seafile.service
,记得将服务文件中的${seafile_dir}
替换成你的安装目录
sudo vim /etc/systemd/system/seafile.service
文件内容如下:
[Unit]Description=Seafile# add mysql.service or postgresql.service depending on your database to the line belowAfter=network.target[Service]Type=oneshotExecStart=${seafile_dir}/seafile-server-latest/seafile.sh startExecStop=${seafile_dir}/seafile-server-latest/seafile.sh stopRemainAfterExit=yesUser=seafileGroup=seafile[Install]WantedBy=multi-user.target
创建 systemd 服务文件 seahub.service
,记得将服务文件中的${seafile_dir}
替换成你的安装目录
sudo vim /etc/systemd/system/seahub.service
文件内容如下:
[Unit]Description=Seafile hubAfter=network.target seafile.service[Service]# change start to start-fastcgi if you want to run fastcgiExecStart=${seafile_dir}/seafile-server-latest/seahub.sh startExecStop=${seafile_dir}/seafile-server-latest/seahub.sh stopUser=seafileGroup=seafileType=oneshotRemainAfterExit=yes[Install]WantedBy=multi-user.target
[Install] WantedBy=multi-user.target
sudo systemctl enable seafile.servicesudo systemctl enable seahub.service