Seafile 是一个开源的文件云存储平台,解决文件集中存储、同步、多平台访问的问,允许用户创建“群组”,在群组内共享和同步文件,方便了团队协同工作。
# 在 CentOS 7 下
# (MariaDB 是 MySQL 的分支)
yum install mariadb-server
# 如果以来有问题
# 尝试在后面加上参数 --skip-broken
yum 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/version
wget 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.sh
Checking 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 at
https://github.com/haiwen/seafile/wiki
Press 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 databases
ccnet/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 ... done
Enter 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 ... done
Enter 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.101
seafile data dir: /home/www/jinpans/seafile-data
fileserver port: 8082
database: create new
ccnet database: ccnet-db
seafile database: seafile-db
seahub database: seahub-db
database user: seafile
---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------
Generating ccnet configuration ...
done
Successly create configuration dir /home/www/jinpans/ccnet.
Generating seafile configuration ...
Done.
done
Generating 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: 8082
port of seahub: 8000
When problems occur, Refer to
https://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-8
Starting 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 started
Done.
然后你可以打开它了:
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-06
mysql -uroot -p seafile-db < seafile-db.sql.2017-11-29-11-36-06
mysql -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 below
After=network.target
[Service]
Type=oneshot
ExecStart=${seafile_dir}/seafile-server-latest/seafile.sh start
ExecStop=${seafile_dir}/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
创建 systemd 服务文件 seahub.service
,记得将服务文件中的${seafile_dir}
替换成你的安装目录
sudo vim /etc/systemd/system/seahub.service
文件内容如下:
[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
# change start to start-fastcgi if you want to run fastcgi
ExecStart=${seafile_dir}/seafile-server-latest/seahub.sh start
ExecStop=${seafile_dir}/seafile-server-latest/seahub.sh stop
User=seafile
Group=seafile
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
[Install] WantedBy=multi-user.target
sudo systemctl enable seafile.service
sudo systemctl enable seahub.service