Ubuntu18.04 搭建開源Seafile雲存儲

Ubuntu18.04 搭建開源Seafile雲存儲

Seafile 是一個開源的文件雲存儲平臺,解決文件集中存儲、同步、多平臺訪問的問題,注重安全和性能,支持 Windows, Mac, Linux, iOS, Android 平臺。支持文件同步或者直接掛載到本地訪問。html

Seafile 包含如下系統組件: Seahub:網站界面,供用戶管理本身在服務器上的數據和帳戶信息。 Seafile服務器經過"gunicorn"(一個輕量級的Python HTTP服務器)來提供網站支持。Seahub做爲gunicorn的一個應用程序來運行。 Seafile server (seaf-server): 數據服務進程, 處理原始文件的上傳/下載/同步。 Ccnet server (ccnet-server): 內部 RPC 服務進程,鏈接多個組件。 Controller: 監控 ccnet 和 seafile 進程,必要時會重啓進程。python

在這裏插入圖片描述 不知道有沒有了解過Seafile,我也本身在Ubuntu下(固然Linux也能夠)搭建了一下,發現是真的好用,不過有兩個版本,一個免費版,雖然功能限制,但基本使用問題不大,要什麼自行車哈;一種是專業版,最多支持三個用戶使用,功能仍是很是齊全的,若是你是一個大企業,用戶比較多的狀況下,Seafile仍是國內的仍是要支持一下的,建議使用專業版服務器。官方提供兩種部署方法一個Linux下,一個Ubuntu下,還能夠在docker下部署,具體看我的狀況吧!下面是我在Ubuntu部署的,期間也把官方有的沒有的看不懂問題解釋一下!!git

部署Seafile的用到的連接github

官方文檔:https://cloud.seafile.com/published/seafile-manual-cn/overview/components.md 服務器手冊中文版:https://www.seafile.com/download/ 下載服務器安裝包:https://www.seafile.com/download/ 下載服務器專業版pro:https://download.seafile.com/d/6e5297246c/?p=/pro 安裝onlyoffice在線編輯http://www.zhuodown.com/a/luyouqi/2020/0424/35965.htmlweb

若是你感受太麻煩,還可使用腳本安裝。但腳本都是默認生成的用戶名,密碼,配置sql

1、部署 Seafile 服務器(使用 MySQL/MariaDB)若是安裝使用SQLite,詳見官方文檔(部署目錄結構 注意:這裏建立目錄名稱無所謂,新建一個放裏邊就行。目的是用於管理,以及後續的升級)docker

mkdir haiwen
mv seafile-server_* haiwen
cd haiwen
  #將 seafile-server_* 移動到 haiwen 目錄下後
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed

目錄大體是這樣子:數據庫

#tree . -L 2
.
├── installed
│   └── seafile-server_1.4.0_x86-64.tar.gz
└── seafile-server-1.4.0
    ├── reset-admin.sh
    ├── runtime
    ├── seafile
    ├── seafile.sh
    ├── seahub
    ├── seahub.sh
    ├── setup-seafile.sh
    └── upgrade

2、安裝前的準備工做 (注意:專業版7.1.X以上必須把python升級到3以上,看清楚下載的版本,避免出錯) Seafile 7.0.xapache

#on Debian/Ubuntu 14.04 server
apt-get update
apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 sqlite3
#on Ubuntu 16.04 server
#As the default python binary on Ubuntu 16.04 server is python 3, we need to install python (python 2) first.
apt-get update
apt-get install python
apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 ffmpeg python-pip sqlite3
pip install pillow moviepy
#on CentOS 7
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

Seafile 7.1 或者以上版本django

#on Debian 10/Ubuntu 18.04

apt-get update
apt-get install python3 python3-setuptools python3-pip python3-ldap -y

pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha
#on CentOS 8
yum install python3 python3-setuptools python3-pip python3-ldap -y

pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha

3、安裝

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

若是你的系統中沒有安裝上面的某個軟件,那麼 Seafile初始化腳本會提醒你安裝相應的軟件包.。(注意:若是沒有MySQL庫,還須要安裝庫,後續建立seafile用戶會用到MySQL的root密碼)該腳本會依次詢問你一些問題,從而一步步引導你配置 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 數據庫應該已經被你(或者其餘人)提早建立。 若是安裝正確完成,你會看到下面這樣的輸出 (新版本可能會有所不一樣)

4、得到許可證書 (注意:專業版獲取證書才能支持3人以上使用) 將您獲得的許可證書放在頂層目錄下。好比,在這篇文檔頁面裏,咱們把 /data/haiwen/ 做爲頂層目錄。

5、啓動 Seafile 服務器和 Seahub 網站 在 seafile-server-latest 目錄下,運行以下命令

啓動 Seafile:
./seafile.sh start # 啓動 Seafile 服務
啓動 Seahub
./seahub.sh start  # 啓動 Seahub 網站 (默認運行在127.0.0.1:8000端口上)

注意:7.0.x 版本以後,8000端口默認監聽在127.0.0.1地址上,這意味着您沒法直接經過8000端口訪問Seafile服務。建議您配置apache反向代理。

啓用Apache反向代理模塊

sudo a2enmod rewrite proxy_http

啓用代理功能

sudo a2enmod rewrite proxy_http

增長防火牆規則

sudo ufw allow 8000
sudo ufw allow 8082

修改代理配置

cd /etc/apache2/sites-enabled
sudo cp 000-default.conf 000-default.conf.bak
sudo vim 000-default.conf

修改以下:

<VirtualHost *:80>
  # ServerName www.myseafile.com 
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html
  Alias /media  /home/demo/haiwen/seafile-server-latest/seahub/media
  RewriteEngine On

  <Location /media>
   Require all granted
  </Location>

  #
  # seafile fileserver
  #
  ProxyPass /seafhttp http://127.0.0.1:8082
  ProxyPassReverse /seafhttp http://127.0.0.1:8082
  RewriteRule ^/seafhttp - [QSA,L]

  #
  # seahub
  #
  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
  ProxyPass / http://127.0.0.1:8000/
  ProxyPassReverse / http://127.0.0.1:8000/
  
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

修改完畢後重啓apache服務

sudo /etc/init.d/apache2 restart

至此,已經能夠用web登錄Seafile。 恭喜! 如今你已經成功的安裝了 Seafile 服務器. 若是你不想在默認的 8000 端口上運行 Seahub, 而是想自定義端口(好比8001)中運行,請按如下步驟操做: 6.3.0 及其以後的版本,咱們棄用了 ./seahub.sh start <port> 的方式使seahub進程監聽在其餘端口。可是,您能夠經過修改 conf/gunicorn.conf 中的端口設置來指定seahub啓動端口。 修改conf/gunicorn.conf

#default localhost:8000
bind = "0.0.0.0:8001"

重啓 Seafile 服務器

./seafile.sh start # 啓動 Seafile 服務
./seahub.sh start # 啓動 Seahub 網站

部署過程當中若是遇到解決不了的問題,好比後邊的在線文檔,全文檢索、集羣等等,的均可以私信交流!!

相關文章
相關標籤/搜索