在本教程中,我们将向您展示如何在 Ubuntu 20.04 LTS 上安装 Seafile。 对于那些不知道的人,Seafile 是一个开源的、自托管的文件同步,它共享具有高性能和可靠性的解决方案。 Seafile 使您能够将文件放在自己的服务器上,并允许其他人和您的不同设备同步和访问它。 Seafile 是用 C 和 Python 编程语言编写的,并提供类似的功能,如 Dropbox、mega.co.nz 等。
本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo
‘ 到命令以获取 root 权限。 我将向您展示在 Ubuntu 20.04 (Focal Fossa) 上逐步安装 Seafile 开源文件托管和云存储系统。 对于 Ubuntu 18.04、16.04 和任何其他基于 Debian 的发行版(如 Linux Mint),您可以按照相同的说明进行操作。
先决条件
- 运行以下操作系统之一的服务器:Ubuntu 20.04、18.04、16.04 和任何其他基于 Debian 的发行版,如 Linux Mint。
- 建议您使用全新的操作系统安装来防止任何潜在问题。
- 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
- 一个
non-root sudo user
或访问root user
. 我们建议充当non-root sudo user
,但是,如果您在充当 root 时不小心,可能会损害您的系统。
在 Ubuntu 20.04 LTS Focal Fossa 上安装 Seafile
步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt
终端中的命令。
sudo apt update sudo apt upgrade
第 2 步。第 2 步。安装所需的依赖项。
现在安装 Seafile 服务器安装所需的所有依赖项 apt
以下命令:
sudo apt install python3 python3-{pip,pil,ldap,urllib3,setuptools,mysqldb,memcache,requests} sudo apt install ffmpeg memcached libmemcached-dev sudo pip3 install --upgrade pip sudo pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy==1.4.3 sudo pip3 install --timeout=3600 django-pylibmc django-simple-captcha python3-ldap mysqlclient
步骤 3. 安装 LEMP 堆栈。
需要 Ubuntu 20.04 LEMP 服务器。 如果您没有安装 LEMP,您可以在此处按照我们的指南进行操作。
步骤 4. 配置 MariaDB。
默认情况下,MariaDB 未加固。 您可以使用 mysql_secure_installation
脚本。 您应该仔细阅读以下每个步骤,这些步骤将设置 root 密码、删除匿名用户、禁止远程 root 登录、删除测试数据库和访问安全 MariaDB:
mysql_secure_installation
像这样配置它:
- Set root password? [Y/n] y - Remove anonymous users? [Y/n] y - Disallow root login remotely? [Y/n] y - Remove test database and access to it? [Y/n] y - Reload privilege tables now? [Y/n] y
接下来,我们需要登录 MariaDB 控制台并为 Seafile 创建一个数据库。 运行以下命令:
mysql -u root -p
这将提示您输入密码,因此输入您的 MariaDB 根密码并点击 Enter. 我们将为这些服务器组件中的每一个创建一个数据库。
MariaDB [(none)]> CREATE DATABASE seafile_server; MariaDB [(none)]> CREATE DATABASE ccnet_server; MariaDB [(none)]> CREATE DATABASE seahub_server;
然后,创建一个数据库用户并为创建的数据库授予权限:
MariaDB [(none)]> CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'Your-Strong-Password'; MariaDB [(none)]> GRANT ALL ON seafile_server.* TO 'seafile'@'localhost'; MariaDB [(none)]> GRANT ALL ON ccnet_server.* TO 'seafile'@'localhost'; MariaDB [(none)]> GRANT ALL ON seahub_server.* TO 'seafile'@'localhost'; MariaDB [(none)]> QUIT;
步骤 5. 在 Ubuntu 20.04 上安装 Seafile。
默认情况下,Seafile 在 Ubuntu 20.04 基础存储库中不可用。 现在运行以下命令从官方页面下载最新版本的 Seafile:
wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_9.0.4_x86-64.tar.gz
接下来,解压下载的文件:
sudo tar -xvf seafile-server_9.0.4_x86-64.tar.gz -C /srv sudo mv /srv/seafile-server_9.0.4_x86-64 /srv/seafile
之后,运行安装脚本:
cd /srv/seafile/ sudo ./setup-seafile-mysql.sh
在安装过程中,您将被要求回答一些关于您的服务器的问题(名称、地址、端口等)。 您还将被询问有关初始化数据库的问题。
安装完成后,现在使用以下命令启动 Seafile 服务器:
cd /srv/seafile sudo ./seafile.sh start
然后启动 Seahub (Django) 网络前端服务:
sudo ./seahub.sh start
步骤 6. 创建 Seafile Systemd 服务。
现在我们将 seafile 和 seahub 设置为 systemd
服务:
sudo tee /etc/systemd/system/seafile.service<<EOF [Unit] Description=Seafile After= mysql.service After=network.target [Service] Type=forking ExecStart=/srv/seafile-server-latest/seafile.sh start ExecStop=/srv/seafile-server-latest/seafile.sh stop [Install] WantedBy=multi-user.target EOF
此外,我们为 Seahub 创建了一个:
sudo tee /etc/systemd/system/seahub.service<<EOF [Unit] Description=Seafile After= mysql.service After=network.target [Service] Type=forking ExecStart=/srv/seafile-server-latest/seahub.sh start ExecStop=/srv/seafile-server-latest/seahub.sh stop [Install] WantedBy=multi-user.target EOF
Save 和 close 文件,然后重新加载 systemd
经理以便进行更改:
sudo systemctl daemon-reload sudo systemctl start seafile && sudo systemctl enable seafile sudo systemctl start seahub && sudo systemctl enable seahub
步骤 7. 将 Nginx 配置为反向代理。
现在我们在下面新建一个配置文件 /etc/nginx/conf.d/seafile.conf
使用以下命令:
server { listen 80; listen [::]:80; server_name seafile.your-domain.com; autoindex off; client_max_body_size 100M; access_log /var/log/nginx/seafile.com.access.log; error_log /var/log/nginx/seafile.com.error.log; location / { proxy_pass https://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; } location /seafhttp { rewrite ^/seafhttp(.*)$ $1 break; proxy_pass https://127.0.0.1:8082; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; } location /media { root /srv/seafile-server-latest/seahub; } }
Save 和 close 文件,然后重新启动 Nginx Web 服务器以进行更改:
nginx -t sudo systemctl restart nginx
步骤 8. 配置防火墙。
默认情况下,在 Ubuntu 上启用了 UFW 防火墙。 根据您的 Nginx 虚拟主机配置文件,打开端口 80 和 443 以允许 HTTP 和 HTTPS 流量:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload
步骤 9. 访问 Seafile Web 界面。
成功安装后,打开您的网络浏览器并使用 URL 访问 Seafile 网络界面 https://seafile.your-domain.com
. 您应该看到以下页面:
恭喜! 您已成功安装 Seafile。 感谢您使用本教程在 Ubuntu 20.04 LTS Focal Fossa 系统上安装 Seafile 开源文件托管和云存储系统。 如需其他帮助或有用信息,我们建议您查看 Seafile 官方网站.