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