如何在 Ubuntu 20.04 LTS 上安装 Seafile

在本教程中,我们将向您展示如何在 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 官方网站.