讀完這篇文章,你應該能完成安裝以下軟體:
- 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 個帳號的長期試用。
差別如圖,感興趣的可以看一下。
部署和目錄設計#
注:這裡下載的文件名是 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
- 如果這裡使用的是
/root/fun2ex/seafile-server-lates/seahub/media
的話,caddy
重啟會報沒有權限的錯誤。 - 如果使用的是
/home/someuser/fun2ex/seafile-server-lates/seahub/media
的目錄,caddy
重啟則會報告ProtectHome
的錯誤。
解決方法有兩個,第一個是修改 caddy.service
的配置。
第二種是把 sefile data 目錄遷移出去,強烈推薦使用這個方法。
—EOF—