本页内容

  • 前置条件
  • 安装依赖项
  • 配置 Firewalld
  • 配置 MariaDB 服务器
  • 添加 Pydio 用户
  • 下载 Pydio Cells
  • 通过命令行安装 Pydio Cells
  • 以 Systemd 服务方式运行 Pydio Cells
  • 配置 httpd 反向代理
  • 结语

Pydio Cells 是一个面向组织的开源文档共享与协作平台。它让你能够在组织内部共享文档和文件,并对文档共享环境拥有完全的控制权。Pydio Cells 性能优异,能够处理超大文件传输,并提供高级工作流自动化能力。

在本指南中,我们将演示如何在 Rocky Linux 9 服务器上安装 Pydio Cells,并搭配 MariaDB 服务器以及 Apache(即 httpd)Web 服务器。你还将使用 Letsencrypt 提供的 SSL/TLS 来加固你的安装。

前置条件

在开始之前,请确保你已具备:

  • 一台 Rocky Linux 9 服务器。
  • 一个拥有 sudo 权限的非 root 用户。
  • 一个指向服务器 IP 地址的域名。
  • SELinux 状态为 permissive(宽松)。

安装依赖项

Pydio Cells 是一个文档共享与协作平台,你可以配合 Apache Web 服务器和 MariaDB 服务器一起运行。因此,首先你需要在 Rocky Linux 机器上安装并启动 Apache 和 MariaDB。

开始之前,请先安装 EPEL 仓库,然后使用以下命令安装 MariaDB 服务器和 Apache Web 服务器。同时,你还将安装 certbot 用于生成 SSL/TLS 证书。

sudo dnf install epel-release
sudo dnf install mariadb-server httpd certbot wget

输入 Y 确认安装。

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

安装完成后,使用以下命令启动并启用 httpd 服务。

sudo systemctl start httpd
sudo systemctl enable httpd

然后,验证 httpd 服务,确保其处于运行状态且已启用。

sudo systemctl status httpd

如下图所示,httpd 服务正在运行。

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

接下来,使用以下命令启动并启用 mariadb 服务器。

sudo systemctl start mariadb
sudo systemctl enable mariadb

最后,使用以下命令验证 mariadb 服务,确保其正在运行。

sudo systemctl status mariadb

如下图所示,mariadb 服务也正在运行。

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

配置 Firewalld

默认情况下,Rocky Linux 上 firewalld 处于活动状态。因此,你现在必须在 firewalld 上开放 HTTP 和 HTTPS 服务,并允许访问你的 httpd Web 服务器。

运行以下命令在 firewalld 上开放 HTTP 和 HTTPS 服务,然后重新加载 firewalld 以应用更改。

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

现在使用以下命令验证 firewalld 状态。确保 HTTP 和 HTTPS 服务都已添加到 firewalld。

sudo firewall-cmd --list-all

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

配置 MariaDB 服务器

默认情况下,MariaDB 服务器未启用密码认证。为了加固并设置密码,你可以使用 mariadb-secure-installation 工具。之后,你还需要为 Pydio Cells 的安装创建一个新数据库和用户。

要加固 MariaDB 服务器安装,请运行以下命令。

sudo mariadb-secure-installation

命令执行后,你将会被提示进行以下部分 MariaDB 配置:

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

既然你已经加固了 MariaDB 并配置了 root 密码,接下来为 Pydio Cells 创建一个新数据库和用户。

使用以下命令登录 MariaDB 服务器。出现提示时输入你的 MariaDB root 密码。

sudo mariadb -u root -p

运行以下查询,为 Pydio Cells 创建一个新的 MariaDB 数据库和用户。本示例中,你将创建一个名为 cells 的数据库,用户为 pydio。同时,请务必将下列密码替换为你自己的密码。

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

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

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

SHOW GRANTS FOR 'pydio'@'localhost';

最后,输入 quit 退出 MariaDB 服务器。

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

添加 Pydio 用户

在本节中,你将创建一个用于运行 Pydio Cells 的新的 Linux 用户。这也将为 Pydio 加载一些全局环境变量。

要创建新的 pydio 用户,请运行以下命令。

sudo useradd -m -s /bin/bash pydio

现在运行以下命令,创建 Pydio Cells 将要使用的目录 /opt/pydio/bin 和 /var/cells。

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

使用以下命令创建新的 bash 配置文件 /etc/profile.d/cells-env.sh,并赋予其可执行权限。该文件将由用户自动加载。

sudo touch /etc/profile.d/cells-env.sh
sudo chmod +x /etc/profile.d/cells-env.sh

使用 nano 编辑器命令打开 /etc/profile.d/cells-env.sh。

sudo nano /etc/profile.d/cells-env.sh

添加以下配置,为 Pydio Cells 创建环境变量。

export CELLS_WORKING_DIR=/var/cells
export CELLS_BIND=127.0.0.1:8080
export CELLS_EXTERNAL=https://cells.howtoforge.local

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

以下是 Pydio Cells 的详细环境变量:

  • CELLS_WORKING_DIR:Pydio 的默认工作目录。
  • CELLS_BIND:Pydio Cells 运行的地址。本示例中,Pydio 将运行在 127.0.0.1:8080。
  • CELLS_EXTERNAL:客户端可访问以连接到你的 Pydio Cells 部署的外部域名。

下载 Pydio Cells

现在你已经安装并配置了依赖项,并且创建了 Pydio 的新用户。接下来可以将 Pydio 下载到你的 Rocky Linux 系统了。

使用以下命令将 Pydio Cells 下载并安装到 /opt/pydio/bin/cells。Pydio Cells 是一个单文件二进制程序,可直接安装到二进制路径下。

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

下载完成后,使用以下命令赋予其可执行权限。

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

现在运行以下命令,允许 /opt/pydio/bin/cells 程序绑定并运行在特权端口。然后,为 Pydio Cells 在系统 bin 路径下创建一个符号链接。

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

接下来,以 pydio 用户身份登录,并使用以下命令验证可用的环境变量。确保各环境变量都指向了正确的值,与 /etc/profile.d/cells-env.sh 文件中一致。

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

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

最后,你可以使用以下命令验证 Pydio Cells 版本。

cells version

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

如下图所示,你的 Rocky Linux 系统上已安装 Pydio Cells 4.3.5。

通过命令行安装 Pydio Cells

现在你已经下载了 Pydio Cells,可以继续通过命令行配置 Pydio Cells 的安装。这样,你可以轻松地在终端中完成 Pydio 的安装。

运行以下 cells 命令,通过命令行配置 Pydio Cells 的安装。

cells configure --cli

你将会被询问以下部分配置:

  • 数据库连接:选择 TCP 方式,然后输入 MariaDB 数据库的主机、端口、用户和密码信息。
  • MongoDB 配置:输入 n 表示否。
  • 管理员用户配置:输入你的 Pydio Cells 管理员用户名和密码。
  • 默认存储位置:按 ENTER 使用默认值并继续。

所有配置完成后,安装应当开始。完成后,你应该会看到 'Installation Finished'(安装完成)的输出。

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

以 Systemd 服务方式运行 Pydio Cells

在本节中,你将创建一个新的 systemd 服务文件,用于运行 Pydio Cells。有了它,你就可以通过 systemctl 命令工具轻松管理 Pydio Cells。

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

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

添加以下配置,将 Pydio Cells 设置为 systemd 服务。你可以看到 Pydio 将以 pydio 用户身份运行,请务必根据你的设置调整环境变量。

[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=127.0.0.1:8080
Environment=CELLS_EXTERNAL=https://cells.howtoforge.local
[Install]
WantedBy=multi-user.target

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

现在运行以下命令重新加载 systemd 管理器。

sudo systemctl daemon-reload

然后,使用以下命令启动并启用 cells 服务。

sudo systemctl start cells
sudo systemctl enable cells

最后,使用以下命令验证 cells 服务状态。你应该会看到 cells 服务已在系统上运行。

sudo systemctl status cells

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

配置 httpd 反向代理

Pydio Cells 现在已经在运行,你需要创建一个新的 httpd 配置用作反向代理。此外,你还需要生成 SSL/TLS 证书来加固你的安装。

首先,使用以下命令创建新目录 /var/www/html/cells/public_html。

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

使用以下 certbot 命令生成 SSL/TLS 证书。请务必将电子邮件地址和目标域名替换为你的 Pydio Cells 安装对应的值。

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

流程完成后,使用以下 nano 编辑器命令创建新的 httpd 虚拟主机文件 /etc/httpd/conf.d/cells.conf。

sudo nano /etc/httpd/conf.d/cells.conf

插入以下配置,并务必将域名替换为你的目标安装域名。

<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 /var/log/httpd/error.log
CustomLog /var/log/httpd/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>

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

现在,运行以下命令验证你的 httpd 语法。然后,重启 httpd 服务以应用更改。

sudo apachectl configtest
sudo systemctl restart httpd

如果你的 httpd 语法正确,你应该会看到 Syntax OK 的输出。

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

最后,打开你的网页浏览器并访问 Pydio Cells 域名,例如 https://ceels.howtoforge.local/ 。如果安装成功,你应该会看到 Pydio Cells 的登录页面。

输入你创建的管理员用户名和密码,然后点击 ENTER。

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

登录后,你应该会看到如下所示的 Pydio Cells 用户仪表盘:

在 Rocky Linux 9 上安装 Pydio Cells 文件共享平台

结语

恭喜!你已成功在 Rocky Linux 9 服务器上安装了 Pydio Cells。你已使用 MariaDB 数据库服务器和 httpd 反向代理安装了 Pydio Cells。同时,你还使用了 Letsencrypt 提供的 SSL/TLS 证书加固了你的安装。