本教程适用于以下操作系统版本

  • Debian 12(Bookworm)
  • Debian 11(Bullseye)
  • Debian 9(Stretch)

本页内容

  • 先决条件
  • 安装依赖项
  • 配置 MariaDB 服务器
  • 安装 Pydio Cells 设置用户与环境变量 下载并安装 Pydio Cells
  • 配置 Pydio Cells
  • 将 Apache2 配置为反向代理
  • 访问 Pydio Cells 安装
  • 结束语
  • 设置用户与环境变量
  • 下载并安装 Pydio Cells

Pydio Cells 是一个自托管的文档共享与协作平台,同时让你对自己的文档共享环境拥有完全的控制权。Pydio Cells 性能出色,可以处理超大文件传输,并提供高级工作流自动化能力。

在下面的指南中,我将带你一步步在 Debian 12 服务器上将 Pydio Cells 安装为文件共享与协作工具。你将使用 MariaDB 数据库服务器和 Apache2 反向代理来安装 Pydio Cells,并通过 Certbot 和 Letsencrypt 生成的 SSL/TLS 证书来为安装提供安全保障。

先决条件

在继续之前,请准备以下内容:

  • 一台 Debian 12 服务器。
  • 一个具有管理员权限的非 root 用户。
  • 一个已指向服务器 IP 地址的域名。

安装依赖项

Pydio Cells 是一个开源的文件共享、管理与协作平台。在安装之前,你必须安装一些依赖项,例如用作数据库服务器的 MariaDB,以及用作反向代理的 Apache2。你还需要安装 Certbot 来生成 SSL/TLS 证书,以保障安装的安全性。

首先,使用以下 apt update 命令刷新你的 Debian 软件包索引。

sudo apt update

现在通过下面的 apt install 命令安装依赖项。你将安装 MariaDB 服务器(用作 Pydio Cells 的数据库)、Apache2 Web 服务器(用作反向代理),以及用于从 Letsencrypt 生成 SSL/TLS 证书的 Certbot。

sudo apt install mariadb-server apache2 certbot wget

输入 y 确认安装并按下 ENTER 键。

在 Debian 12 上安装 Pydio Cells 文件管理平台

依赖项安装完成后,使用以下 systemctl 命令检查 apache2 服务,确保 apache2 服务已启用并正在运行。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

以下输出表明 apache2 已启用并正在运行。

在 Debian 12 上安装 Pydio Cells 文件管理平台

最后,通过以下 systemctl 命令检查 mariadb 服务。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

输出应类似,表明 mariadb 服务正在运行且已启用。

在 Debian 12 上安装 Pydio Cells 文件管理平台

配置 MariaDB 服务器

在接下来的步骤中,你将通过 mariadb-secure-installation 工具来加固 MariaDB 服务器的安装。之后,你将为 Pydio Cells 创建一个新的数据库和用户。

执行下面的 mariadb-secure-installation 命令,开始配置 MariaDB 服务器。

sudo mariadb-secure-installation

安装过程会要求你输入 Y 确认新设置,或输入 n 表示否。以下是你会被要求配置的部分 MariaDB 服务器选项:

  • 将本地身份验证切换为 unix_socket?输入 n。
  • 设置新的 MariaDB root 密码?输入 y 确认,然后输入你的 MariaDB 服务器部署的新密码。
  • 删除匿名用户?输入 y 确认。
  • 从部署中删除默认的 test 数据库?输入 y 确认。
  • 禁止 MariaDB root 从远程连接登录?输入 y 确认。
  • 重新加载表权限并应用更改?输入 y 并按下 ENTER。

MariaDB 加固完成后,你将为 Pydio Cells 安装创建一个新的数据库和用户。为此,你必须登录到 MariaDB 服务器。

执行以下 mariadb 命令登录 MariaDB 服务器。当提示时输入你的 MariaDB root 密码。

sudo mariadb -u root -p

登录后,运行以下查询以创建新数据库 cells 以及密码为 p4ssw0rd 的用户 pydio。然后,允许用户 pydio 访问数据库 cells。

CREATE DATABASE cells;
CREATE USER 'pydio'@'localhost' IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON cells.* to 'pydio'@'localhost';
FLUSH PRIVILEGES;

在 Debian 12 上安装 Pydio Cells 文件管理平台

接下来,运行以下查询以确保用户 pydio 能够访问数据库 cells。

SHOW GRANTS FOR 'pydio'@'localhost';

以下输出显示用户 pydio 拥有访问和管理数据库 cells 的权限。

在 Debian 12 上安装 Pydio Cells 文件管理平台

输入 quit 退出 MariaDB 服务器。

安装 Pydio Cells

配置好 MariaDB 服务器后,你将通过静态二进制文件安装 Pydio Cells。在此之前,你必须先准备好系统:创建一个专用的新用户、设置一个数据目录,并创建 Pydio Cells 所需的若干系统环境变量。

设置用户与环境变量

首先,使用以下命令创建一个新用户 pydio。

sudo useradd -m -s /bin/bash pydio

现在为你的 Pydio Cells 安装创建新的数据目录 /var/cells,并将所有权更改为用户 pydio。

sudo mkdir -p /opt/pydio/bin /var/cells
sudo chown -R pydio: /opt/pydio /var/cells

接下来,运行以下命令创建新的环境变量配置文件 /etc/profile.d/cells-env.sh,并将权限改为 0755 使其可执行。其中环境变量 CELLS_WORKING_DIR 用于数据目录,CELLS_BIND 用于指定 Pydio Cells 运行的 IP 地址和端口,而 CELLS_EXTERNAL 则是你 Pydio Cells 安装的域名。

sudo tee -a /etc/profile.d/cells-env.sh << EOF
export CELLS_WORKING_DIR=/var/cells
export CELLS_BIND=https://127.0.0.1:8080
export CELLS_EXTERNAL=https://cells.howtoforge.local
EOF
sudo chmod 0755 /etc/profile.d/cells-env.sh

在 Debian 12 上安装 Pydio Cells 文件管理平台

现在以用户 pydio 身份登录,并验证环境变量 CELLS_WORKING_DIR、CELLS_BIND 和 CELLS_EXTERNAL。

su - pydio
echo $CELLS_WORKING_DIR
echo $CELLS_BIND
echo $CELLS_EXTERNAL

如果成功,你应当看到每个环境变量都与文件 /etc/profile.d/cells-env.sh 中的设置一致。

在 Debian 12 上安装 Pydio Cells 文件管理平台

下载并安装 Pydio Cells

执行以下命令,将 Pydio Cells 的静态二进制文件下载到 /opt/pydio/bin/cells。

export distribId=cells
wget -O /opt/pydio/bin/cells https://download.pydio.com/latest/${distribId}/release/{latest}/linux-amd64/${distribId}

Pydio Cells 下载完成后,使用以下命令使其可执行。然后输入 exit 退出用户 pydio。

chmod a+x /opt/pydio/bin/cells
exit

现在运行以下命令,允许 cells 绑定到特权端口。然后,为 /opt/pydio/bin/cells 命令创建指向 /usr/local/bin/cells 的符号链接。

sudo setcap 'cap_net_bind_service=+ep' /opt/pydio/bin/cells
sudo ln -s /opt/pydio/bin/cells /usr/local/bin/cells

现在再次以用户 pydio 身份登录,并检查 cells 的二进制文件。然后,验证你当前的 cells 版本。

su - pydio
which cells
cells version

你应当看到 cells 二进制文件位于 /usr/local/bin/cells,且已安装的 cells 版本为 4.2.5。

在 Debian 12 上安装 Pydio Cells 文件管理平台

配置 Pydio Cells

安装好 Pydio Cells 二进制文件后,你就可以开始配置它了。配置可以通过 CLI(命令行界面)或 Web 浏览器完成。在本例中,你将通过命令行终端配置 Pydio Cells:设置数据库、创建管理员用户,然后创建一个新的 systemd 服务文件,让 Pydio Cells 在后台运行。

运行下面的 cells 命令,开始配置 Pydio Cells 安装。参数 --cli 允许你在终端中以交互方式配置 Pydio Cells。

cells configure --cli

以下是你会被要求配置的部分选项:

  • 数据库配置:选择 via TCP,输入数据库主机为 localhost,端口使用默认 3306,数据库名称为 cells,用户为 pydio,以及密码。
  • 当提示关于高可用 Cells 安装的 MongoDB 配置时,输入 n。
  • 输入你的 Pydio Cells 安装新的管理员用户和密码。
  • 存储配置:选择 /var/cells/data 选项。

配置过程完成后,你应该会看到类似如下的 Installation Finished 输出:

在 Debian 12 上安装 Pydio Cells 文件管理平台

既然你已经配置好 Pydio Cells,下一步就是将 cells 设置为以 systemd 服务的形式在后台运行。这样你就可以更方便地通过 systemctl 命令工具来管理 cells。

使用以下 nano 编辑器命令,创建新的 systemd 服务文件 /etc/systemd/system/cells.service。

sudo nano /etc/systemd/system/cells.service

插入以下配置,并务必修改其中的环境变量 CELLS_WORKING_DIR、CELLS_BIND 和 CELLS_EXTERNAL。

[Unit]
Description=Pydio Cells
Documentation=https://pydio.com
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/pydio/bin/cells
[Service]
User=pydio
Group=pydio
PermissionsStartOnly=true
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/opt/pydio/bin/cells start
Restart=on-failure
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65536
TimeoutStopSec=5
KillSignal=INT
SendSIGKILL=yes
SuccessExitStatus=0
WorkingDirectory=/home/pydio
# Add environment variables
Environment=CELLS_WORKING_DIR=/var/cells
Environment=CELLS_BIND=https://127.0.0.1:8080
Environment=CELLS_EXTERNAL=https://cells.howtoforge.local
[Install]
WantedBy=multi-user.target

完成后,保存文件并退出编辑器。

现在运行以下 systemctl 命令,重新加载 systemd 管理器并应用新的 systemd 服务。

sudo systemctl daemon-reload

使用下面的 systemctl 命令启动并启用 cells 服务。该命令会将 cells 服务设置为系统开机时自动启动。

sudo systemctl start cells
sudo systemctl enable cells

在 Debian 12 上安装 Pydio Cells 文件管理平台

使用以下命令验证 cells 服务的状态。正如 CELLS_BIND 环境变量中所定义的,Pydio Cells 应当运行在 127.0.0.1 的 8080 端口上。

sudo systemctl status cells

如果正在运行,你应该会看到类似 active (running) 的输出。

在 Debian 12 上安装 Pydio Cells 文件管理平台

将 Apache2 配置为反向代理

此时,Pydio Cells 已在后台以默认端口 xxx 在 localhost 上运行。在本步骤中,你将把 Apache2 配置为 Pydio Cells 应用的反向代理。同时,你还需要为你的域名生成新的 SSL/TLS 证书,因此请确保你已经准备好域名并将其指向服务器 IP 地址。

首先,执行下面的 a2enmod 命令,启用一些将用作反向代理的 Apache2 扩展模块。

sudo a2enmod rewrite proxy proxy_http proxy_wstunnel http2 proxy_http2

然后运行以下命令创建新目录 /var/www/html/cells/public_html,并将所有权更改为 www-data 用户。该目录将在生成 Letsencrypt 证书时用于验证。

sudo mkdir -p /var/www/html/cells/public_html
sudo chown -R www-data:www-data /var/www/html/cells/public_html

之后,运行下面的 certbot 命令,为你的 Pydio Cells 域名生成新的 SSL/TLS 证书。请务必将邮件地址和域名替换为你自己的信息。

sudo certbot certonly --agree-tos --email 
[email protected]
 --no-eff-email --webroot -w /var/www/html/cells/public_html -d cells.howtoforge.local

当流程完成后,你的 SSL/TLS 证书将位于 /etc/letsencrypt/live/domain.com 目录中。

接下来,使用以下 nano 编辑器命令创建新的 Apache2 虚拟主机配置文件 /etc/apache2/sites-available/cells.conf。

sudo nano /etc/apache2/sites-available/cells.conf

插入以下配置,并务必将域名和 SSL/TLS 证书路径替换为你自己的信息。

<VirtualHost *:80>
    ServerName cells.howtoforge.local
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    RewriteCond %{SERVER_NAME} =cells.howtoforge.local
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
    ServerName cells.howtoforge.local
    AllowEncodedSlashes On
    RewriteEngine On
    # be aware of this
    # Allow reverse proxy via self-signed certificates
    SSLProxyEngine On
    SSLProxyVerify none 
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ## The order of the directives matters.
    # If Cells is not running with https, consider using ws instead of wss
    ProxyPassMatch "/ws/(.*)" wss://localhost:8080/ws/$1 nocanon
    ## This rewrite condition is required if using Cells-Sync
    # RewriteCond %{HTTP:Content-Type} =application/grpc [NC]
    # RewriteRule /(.*) h2://localhost:8080/$1 [P,L]
    ProxyPass "/" "https://127.0.0.1:8080/" 
    ProxyPassReverse "/" "https://127.0.0.1:8080/"
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLCertificateFile /etc/letsencrypt/live/cells.howtoforge.local/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/cells.howtoforge.local/privkey.pem
    #Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

完成后保存文件并退出编辑器。

现在运行以下命令以启用虚拟主机文件 cells.conf,并检查 Apache 语法是否有误。如果你的 Apache2 语法正确,应该会看到 Syntax OK 的输出。

sudo a2ensite cells.conf
sudo apachectl configtest

最后,运行以下 systemctl 命令重启 apache2 服务并应用更改。这样,你的 Pydio Cells 就可以通过 Apache2 反向代理的安全 HTTPS 连接进行访问了。

sudo systemctl restart apache2

访问 Pydio Cells 安装

启动你的 Web 浏览器,访问 Pydio Cells 安装的域名,例如 https://cells.howtoforge.local/。如果一切顺利,你应该会被重定向到 Pydio Cells 登录页面。

输入你在配置过程中创建的管理员用户和密码,然后点击 Enter。

在 Debian 12 上安装 Pydio Cells 文件管理平台

如果成功,你应该会看到类似如下的 Pydio Cells 用户仪表盘:

在 Debian 12 上安装 Pydio Cells 文件管理平台

点击 Personal Files 工作区,你应该会进入 Pydio Cells 文件管理器。点击 New 按钮并上传一个新文件,以确认你能够向 Pydio Cells 上传文件。

在 Debian 12 上安装 Pydio Cells 文件管理平台

结束语

按照本指南,你已经在 Debian 12 服务器上安装了 Pydio Cells。你使用 MariaDB 数据库服务器和 Apache2 反向代理安装了 Pydio Cells,并且还用 Letsencrypt 生成的 SSL/TLS 证书为你的 Pydio Cells 安装提供了安全保障。接下来,你就可以使用 Pydio Cells 进行文档和文件管理、协作与共享了。