读完这篇文章,你应该能完成安装以下软件:
- 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—