天天看點

linux環境下的Seafile雲盤實踐

Seafile雲盤

1、Seafile簡介

Seafile 是一款開源的企業雲盤,注重可靠性和性能。支援 Windows, Mac, Linux, iOS, Android 平台。支援檔案同步或者直接挂載到本地通路。
           

2、Seafile特性

可靠的檔案同步:檔案組織成資料庫。每個資料庫可選擇性的同步到任意裝置。可靠高效的檔案同步将提高您的工作效率;	
挂載盤用戶端:直接通過本地 S 盤來通路雲端檔案,不占用本地存儲。為電腦提供伺服器的海量存儲空間。同作業系統無縫內建,還可以離線修改檔案;
團隊協作:可以共享檔案到群組。權限管理、版本控制、事件通知讓協作更為流暢;
高性能:Seafile 伺服器核心由 C 語言編寫。運作起來小巧快速;
Wiki 與知識管理:融合 Wiki 與網盤的功能,使用 Markdown 格式以所見即所得方式編輯 Wiki 文檔,提供搜尋、标簽、評審等知識管理功能,支援對外釋出 Wiki 内容;
适用于企業環境:可與 AD/LDAP 內建。可同步 AD 群組和使用者資訊。
           

3、Linux 下部署 Seafile 伺服器

3.1、 目錄設計

cd /root/
mkdir seafile        #seafile的整體檔案
cd seafile 
mkdir seafile_pkg    #存放下載下傳好的seafile包
           

這樣設計目錄的好處在于:

和 seafile 相關的配置檔案都可以放在 seafile 目錄下,便于集中管理

後續更新時,你隻需要解壓最新的安裝包到 seafile 目錄下配置的管理

3.2、下載下傳并解壓

cd /root/seafile/seafile_pkg/
wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_7.0.5_x86-64.tar.gz
tar -xf seafile-server_7.0.5_x86-64.tar.gz -C /root/seafile/
           

3.3、 目錄結構如下

linux環境下的Seafile雲盤實踐

3.4、 安裝 Seafile 伺服器

3.4.1、安裝 Seafile 伺服器之前,請确認已安裝以下軟體

MariaDB 伺服器 (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)

在Debian/Ubuntu系統下

apt-get update
apt-get install mariadb-server
apt-get install python2.7 python-setuptools python-imaging python-ldap python-mysqldb python-memcache python-urllib3
           

在 CentOS 7 下

yum install mariadb-server
yum install python-setuptools python-imaging python-ldap MySQL-python python-memcached python-urllib3
           

3.4.2、安裝

1)執行腳本

cd /root/seafile/seafile-server-7.0.5

./setup-seafile-mysql.sh #運作安裝腳本并回答預設問題

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

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

seafile server name:seafile 伺服器的名字,目前該配置已經不再使用;3 ~ 15 個字元,可以用英文字母,數字,下劃線。

seafile server ip or domain:seafile 伺服器的 IP位址或者域名;用戶端将通過這個 IP 或者位址來通路你的 Seafile 服務。

seafile data dir:seafile資料存放的目錄,用上面的例子,預設将是 /root/seafile/seafile-data;seafile資料将随着使用而逐漸增加,請把它放在一個有足夠大空閑空間的分區上。

seafile fileserver port:seafile fileserver 使用的 TCP 端口;該端口用于檔案同步,請使用預設的 8082,不能更改。

linux環境下的Seafile雲盤實踐

填寫預設的資料庫端口、資料庫名

linux環境下的Seafile雲盤實踐

服務安裝資訊輸出

linux環境下的Seafile雲盤實踐

安裝成功

linux環境下的Seafile雲盤實踐
2)啟動 Seafile 伺服器

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

linux環境下的Seafile雲盤實踐

啟動 Seahub:./seahub.sh start # 啟動 Seahub 網站 (預設運作在8000端口上)

linux環境下的Seafile雲盤實踐

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

3)登陸首頁
linux環境下的Seafile雲盤實踐
linux環境下的Seafile雲盤實踐
4)關閉/重新開機 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 "seahub" # 檢視 Seahub 程序
           

使用pkill指令殺掉相關程序

pkill -f seafile-controller # 結束 Seafile 程序
pkill -f "seahub" # 結束 Seafile 程序
           
5)注意要點:

在這裡, 你會被要求選擇一種建立 Seafile 資料庫的方式:

選1時,會在如下箭頭所示的地方回車後提示權限拒絕,因為需要單獨對建立的seafile使用者授權,同時如果資料庫和seafile服務分離部署還需要對root授權;授權之後就無需在選擇1,直接選擇2,然後将在1中建立的資料庫同樣在2中的粘貼進去即可

grant all privileges on *.* to 'root'@'%';
grant all privileges on *.* to 'seafile'@'%';
           

若失敗則執行 ,則執行下面指令

mysql5.7授權

update user set host='%' where user='root';
grant all privileges on *.* to 'seafile'@'%'; grant all privileges on *.* to 'root'@'%'; 
           

mysql8授權

update user set host='%' where user='root';
grant all privileges on *.* to 'root'@'%' with GRANT OPTION; 
grant all privileges on *.* to 'root'@'%';
           

選2,需要提前建立seafile使用者,同時給seafile使用者授權

linux環境下的Seafile雲盤實踐

3.4.3、有時候搭建好了,但是不能上傳檔案,需要檢視此配置

linux環境下的Seafile雲盤實踐

或者頁面的配置不一樣導緻引起的

linux環境下的Seafile雲盤實踐

3.4.4、Nginx 下配置 Seahub

在C:\Windows\System32\drivers\etc目錄下的hosts檔案最終組添加

192.168.171.129  www.myseafile.com
           
linux環境下的Seafile雲盤實踐

Seahub 是 Seafile 伺服器的網站界面, SeafServer 用來處理浏覽器端檔案的上傳與下載下傳. 預設情況下, 它在 8082 端口上監聽 HTTP 請求;

這裡我們通過 fastcgi 部署 Seahub, 通過反向代理(Reverse Proxy)部署 SeafServer. 我們假設你已經将 Seahub 綁定了域名"www.myseafile.com".

下面是一個 Nginx 配置檔案的例子(待上傳)