seafile安裝文檔

簡介

Seafile 是一個開源的文件雲存儲平臺,解決文件集中存儲、同步、多平臺訪問的問題,注重安全和性能。

Seafile 通過"資料庫"來分類管理文件,每個資料庫可單獨同步,用戶可加密資料庫, 且密碼不會保存在服務器端,所以即使是服務器管理員也無權訪問你的文件。

Seafile 允許用戶創建"群組",在群組內共享和同步文件,方便了團隊協同工作。

目標

在系統centos7.3版本上安裝seafile-server_6.2.5_x86-

簡介

Seafile 是一個開源的文件雲存儲平臺,解決文件集中存儲、同步、多平臺訪問的問題,注重安全和性能。

Seafile 通過"資料庫"來分類管理文件,每個資料庫可單獨同步,用戶可加密資料庫, 且密碼不會保存在服務器端,所以即使是服務器管理員也無權訪問你的文件。

Seafile 允許用戶創建"群組",在群組內共享和同步文件,方便了團隊協同工作。

目標

在系統centos7.3版本上安裝seafile-server_6.2.5_x86-64,使用mysql作為數據庫。

安裝mysql

配置YUM源

在MySQL官網中下載YUM源rpm安裝包:http://dev.mysql.com/downloads/repo/yum/

下載mysql源安裝包

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安裝mysql源

yum localinstall mysql57-community-release-el7-8.noarch.rpm

檢查mysql源是否安裝成功

yum repolist enabled | grep "mysql.*-community.*"
seafile安裝文檔

看到上圖所示表示安裝成功。

可以修改vim /etc/yum.repos.d/mysql-community.repo源,改變默認安裝的mysql版本。比如要安裝5.6版本,將5.7源的enabled=1改成enabled=0。然後再將5.6源的enabled=0改成enabled=1即可。改完之後的效果如下所示

seafile安裝文檔

安裝MySQL

yum install mysql-community-server

啟動MySQL服務

systemctl start mysqld

查看MySQL的啟動狀態

systemctl status mysqld

設置MySQL開機啟動

systemctl enable mysqld
systemctl daemon-reload

修改root本地登錄密碼

shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword1!';

或者

mysql> set password for 'root'@'localhost'=password('MyNewPassword1!');

注意:mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤

部署 Seafile 服務器

部署

假設安裝目錄為 Documents, 在https://www.seafile.com/download/下載你需要的seafile版本到Documents目錄下。我使用的是seafile-server_6.2.5_x86-64.tar.gz

wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.2.5_x86-64.tar.gz
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed

安裝 Seafile 服務器

安裝前的準備工作

安裝 Seafile 服務器之前,請確認已安裝以下軟件

· MariaDB 或者 MySQL 服務器 (MariaDB 是 MySQL 的分支)

· python 2.7 (從 Seafile 5.1 開始,python 版本最低要求為2.7)

· python-setuptools

· python-imaging

· python-mysqldb

· python-ldap

· python-urllib3

· python-memcache (或者 python-memcached)

yum -y install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
yum -y install python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel
pip install pillow moviepy

安裝

cd seafile-server-*
./setup-seafile-mysql.sh #運行安裝腳本並回答預設問題

如果你的系統中沒有安裝上面的某個軟件,那麼 Seafile初始化腳本會提醒你安裝相應的軟件包.

該腳本會依次詢問你一些問題,從而一步步引導你配置 Seafile 的各項參數:

在這裡, 你會被要求選擇一種創建 Seafile 數據庫的方式:

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

· 如果選擇1, 你需要提供根密碼. 腳本程序會創建數據庫和用戶。

· 如果選擇2, ccnet/seafile/seahub 數據庫應該已經被你(或者其他人)提前創建。

如果安裝正確完成,你會看到下面這樣的輸出 (新版本可能會有所不同)

seafile安裝文檔

啟動 Seafile 服務器

啟動 Seafile 服務器和 Seahub 網站

在 seafile-server-6.2.5 目錄下,運行如下命令

· 啟動 Seafile:

./seafile.sh start # 啟動 Seafile 服務

· 啟動 Seahub

./seahub.sh start <port> # 啟動 Seahub 網站 (默認運行在8000端口上)
/<port>

小貼士: 你第一次啟動 seahub 時,seahub.sh 腳本會提示你創建一個 seafile 管理員帳號。

服務啟動後, 打開瀏覽器並輸入以下地址

http://IP:port/

你會被重定向到登陸頁面. 輸入管理員用戶名和密碼即可。

設置開機啟動

首先停止seafile、seahub服務

cd /root/Documents/seafile-server-latest
./seafile.sh stop
./seahub.sh stop

創建seafile.service

vim /etc/systemd/system/seafile.service

# 添加下面的內容,wq保存。

[Unit]
Description=Seafile
After=mysql.service
[Service]
Type=oneshot
ExecStart=/root/Documents/seafile-server-latest/seafile.sh start
ExecStop=/root/Documents/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

Ps: /root/Documents/seafile-server-latest為seafile.sh父路徑,根據安裝路徑修改

創建seahub.service

vim /etc/systemd/system/seahub.service

# 添加下面的內容,wq保存。

[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
ExecStartPre=/bin/sleep 1
ExecStart=/root/Documents/seafile-server-latest/seahub.sh start 80
ExecStop=/root/Documents/seafile-server-latest/seahub.sh stop
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

Ps: 80為啟動seahub的端口,可以自定義,要和防火牆中的保持一直,如果更改端口,不僅需要修改此文件還需要修改防火牆(在防火牆開啟的情況下),否則訪問不到

啟動、開機啟動seafile、seahub

systemctl start seafile
systemctl enable seafile
systemctl start seahub
systemctl enable seahub

加入防火牆

添加

firewall-cmd --zone=public --add-port=8082/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,沒有此參數重啟後失效)

重新載入

firewall-cmd –reload

備份

備份目錄設計

backup目錄下創建如下目錄結構

/backup
---- databases/ 包含數據庫備份
---- data/ 包含 Seafile 數據備份

備份數據庫

假設你的數據庫名分別為 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 +"

備份 Seafile 資料庫數據

假定所有的數據文件都存儲在 /root/Documents 目錄, 備份整個目錄即可。你可以直接拷貝整個目錄到備份目錄,或者你也可以用 rsync 做增量備份。

直接拷貝整個數據目錄,

cp -R /root/Documents /backup/data/install-`date +"%Y-%m-%d-%H-%M-%S"`

這樣每次都會產生一個新的備份文件夾,完成後,可以刪掉舊的備份。

如果你有很多數據,拷貝整個數據目錄會花很多時間,這時你可以用rsync做增量備份。

rsync -az /root/Documents /backup/data/

這個命令數據備份到 /backup/data/ 下。

恢復

恢復Seafile 資料庫數據

如果你當前的 Seafile 服務器已經壞掉,將使用另一臺機器來提供服務,需要恢復數據:

1. 假設在新機器中,Seafile 也被部署在了 /root/Documents 目錄中,拷貝 /backup /data/install 到新機器中即可。

2. 假設在新機器中,Seafile 被部署在了/apps/install 目錄中,拷貝 /backup /data/install 到新機器中。修改/apps/install/ccnet/seafile.ini文件內容,內容為/apps/install/seafile-data目錄所在路徑。

3. 恢復數據庫。

恢復數據庫

現在你已經擁有了數據庫備份文件,你可以按如下步驟來進行恢復。

MySQL

mysql -u[username] -p[password] ccnet-db < ccnet-db.sql.2018-10-22-15-41-05
mysql -u[username] -p[password] seafile-db < seafile-db.sql.2018-10-22-15-41-05
mysql -u[username] -p[password] seahub-db < seahub-db.sql.2018-10-22-15-41-05

參考:

<<seafile>>/<seafile>


分享到:


相關文章: