JoeZhao

跨出界

Hey, I’m JoeZhao, a software engineer, and a gamer.

如何在Ubuntu 18.04上安裝Seafile Pro並使用Caddy代理前端

讀完這篇文章,你應該能完成安裝以下軟體:

  • python & python-pip
  • caddy
  • mysql-server
  • jre
  • seafile-pro ```

注意:如果你想流程的跑 Seafile,機器配置建議:

1. 內存 >= 2GB
2. CPU >= 2 Core

環境準備#

以下只針對 ubuntu 18.04 系統,在下一個 LTS 版本出來之前,應該都不會更新。

以下命令沒有特殊說明,請不要直接使用 root 用戶執行。

# 系統更新
sudo apt update
sudo apt upgrade

# Python 2.7 及其依賴安裝
apt-get install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache
pip install pillow moviepy

# 注意,在執行 pip install pillow moviepy 的時候,我這邊報了一個無法安裝的錯誤,是因為 setuptools 版本過低導致的,如果你也有類似的提示,可以嘗試先執行以下代碼:
pip install —upgrade setuptools

# install 
sudo apt install default-jre

# mysql install
sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

基本環境依賴到此就完成了。

注:數據庫安裝詳細內容可以點擊這裡前往: 「如何在 Ubuntu 18.04 安裝 MySQL」

Seafile 安裝#

下載 Seafile 安裝文件#

一、下載地址:社區版
二、下載地址:專業版

需要註冊帳號,專業版沒有 license 文件的情況下,可以支持 3 個帳號的長期試用。

差別如圖,感興趣的可以看一下。

661299325

來源:Seafile 功能對照說明

部署和目錄設計#

注:這裡下載的文件名是 seafile-pro-server_7.0.9_x86-64_Ubuntu.tar.gz,實際操作中因為版本和系統的不同有所差異,請注意替換。

因為 systemd 服務有 ProtectHome 的配置,所以為了遵循相關約定,把 seafile 的目錄放在外部,如 /data/fun2ex

sudo mkdir -p /data/fun2ex
cd /data/fun2ex
# 移動安裝文件到安裝目錄下
mv ~/download/seafile-pro-server_* /data/fun2ex
# 將 seafile-pro-server_* 移動到 fun2ex 目錄下後
tar -xzfv seafile-pro-server_*
mkdir installed
mv seafile-pro-server_* installed

現在,你的目錄結構大致如下:

# tree /data/fun2ex -L 2
/data/fun2ex
├── installed
   └── seafile-pro-server_7.0.9_x86-64_Ubuntu.tar.gz
└── seafile-pro-server-7.0.9
    ├── reset-admin.sh
    ├── runtime
    ├── seafile
    ├── seafile.sh
    ├── seahub
    ├── seahub.sh
    ├── setup-seafile.sh
    └── upgrade

以下為官方說明:

這樣設計目錄的好處在於
1、和 seafile 相關的配置文件都可以放在 /data/fun2ex 目錄下,便於集中管理.
2、後續升級時,你只需要解壓最新的安裝包到 /data/fun2ex 目錄下.

seafile 服務安裝#

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

安裝腳本會檢測是否有遺漏的軟體包,只需要根據提示一步一步操作過去就 OK 了。

安裝完成之後目錄看起來如下:

/data/fun2ex
├── ccnet
   ├── ccnet.sock
   ├── misc
   ├── mykey.peer
   └── seafile.ini
├── conf
   ├── ccnet.conf
   ├── gunicorn.conf
   ├── seafdav.conf
   ├── ...
├── installed
   └── seafile-pro-server_7.0.9_x86-64_Ubuntu.tar.gz
├── pro-data
├── seafile-data
├── seafile-pro-server-7.0.9
   ├── ...
   ├── seafile-background-tasks.sh
   ├── seafile.sh
   ├── seaf-import.sh
   ├── seafobj_migrate.py
   ├── seahub
   ├── seahub-extra
   ├── seahub.sh
   ├── setup-seafile-mysql.py
   ├── setup-seafile-mysql.sh
   ├── setup-seafile.sh
   ├── sql
   └── upgrade
├── seafile-server-latest -> seafile-pro-server-7.0.9
└── seahub-data

seafile 服務管理#

cd /data/fun2ex/seafile-server-lates
./seafile.sh { start | stop | restart }  # Seafile 服務管理
./seahub.sh { start | stop | restart }   # 管理 Seahub 網站 (默認運行在8000端口上)

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

seafile 配置完畢。

Caddy 伺服器配置#

安裝請直接查看這篇文章 Caddy 安裝配置指南 (LCMP)

Caddyfile 配置如下:

example.com {
    proxy / localhost:8000 {
        transparent
    }
    gzip
}

example.com/seafhttp {

    proxy / localhost:8082 {
        without /seafhttp
        transparent
    }
    gzip
}

example.com/media {
    root /data/fun2ex/seafile-server-lates/seahub/media
    gzip
}

然後重新啟動 caddy 服務就可以了。

sudo systemctl restart caddy
  1. 如果這裡使用的是 /root/fun2ex/seafile-server-lates/seahub/media 的話,caddy 重啟會報沒有權限的錯誤。
  2. 如果使用的是 /home/someuser/fun2ex/seafile-server-lates/seahub/media 的目錄,caddy 重啟則會報告 ProtectHome 的錯誤。

解決方法有兩個,第一個是修改 caddy.service 的配置。
第二種是把 sefile data 目錄遷移出去,強烈推薦使用這個方法。

—EOF—

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。