简介
Pydio Cells 是一个开源的文档共享和协作平台,专为你的组织设计。它允许你在组织内部分享文档和文件,并让你完全掌控文档共享环境。
在本教程中,我们将向你展示如何在 Alma Linux 9 服务器上安装 Pydio Cells。你将使用 MariaDB 数据库服务器和 Httpd Web 服务器来安装 Pydio Cells。
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh root@154.9.227.239
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
安装依赖
在安装 Pydio Cells 之前,你需要先在你的 Alma Linux 服务器上安装依赖项。这包括 EPEL 仓库、MariaDB 数据库服务器、Httpd Web 服务器以及一些系统工具,如 wget 和 nano。
首先,运行下面的 dnf
命令来添加 EPEL 仓库,并安装 MariaDB 服务器和 Httpd Web 服务器。输入 Y
来确认安装。
sudo dnf install epel-release mariadb-server httpd wget nano
安装完成后,运行下面的 systemctl
命令来启动、启用和验证 httpd
服务。你将会看到 httpd
服务正在运行且已启用。
sudo systemctl enable --now httpd
sudo systemctl status httpd
现在,运行以下命令来启动并启用 mariadb
服务。然后,验证它以确保服务正在运行。
sudo systemctl enable --now mariadb
sudo systemctl status mariadb
在以下输出中,你可以看到 MariaDB 服务器正在运行且已启用。
最后,运行下面的 firewall-cmd
命令,在你的系统上打开 http
和 https
端口。然后,重新加载 firewalld 规则以应用你的更改。
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
配置 MariaDB 服务器
安装完依赖项后,你需要保护 MariaDB 服务器的安装,并为 Pydio Cells 服务器安装创建一个新的数据库和用户。你将使用 mariadb-secure-installation
命令来保护 MariaDB,然后通过 mariadb
客户端创建一个新的数据库和用户。
要保护 MariaDB 服务器的安装,请执行下面的 mariadb-secure-installation
命令。
sudo mariadb-secure-installation
在此过程中,你将被问及以下配置:
- 切换本地身份验证到 unix_socket?输入 n。
- 设置新的 MariaDB root 密码。输入 y 确认,然后输入你的 MariaDB 服务器部署的新密码。
- 删除匿名用户?输入 y 确认。
- 从部署中删除默认的测试数据库?输入 y 确认。
- 禁止 MariaDB root 从远程连接登录?输入 y 确认。
- 重新加载表权限并应用更改。输入 y 并按 ENTER。
现在 MariaDB 服务器已受到保护,你将为 Pydio Cells 安装创建一个新的数据库和用户。
使用下面的 mariadb
命令登录到 MariaDB 服务器。出现提示时,输入你的 MariaDB root 密码。
sudo mariadb -u root -p
运行以下查询以创建新的数据库 cells
和新的用户 pydio
,密码为 p4ssw0rd
。你可以根据需要调整数据库详细信息。
CREATE DATABASE cells;
CREATE USER 'pydio'@'localhost' IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON cells.* to 'pydio'@'localhost';
FLUSH PRIVILEGES;
现在,检查用户 pydio
的权限,以确保对数据库 cells
的权限。
SHOW GRANTS FOR 'pydio'@'localhost';
你可以在下面看到数据库 cells
可以通过用户 pydio
访问。
输入 quit
以退出 MariaDB 服务器。
下载 Pydio Cells
配置完 MariaDB 数据库后,你就可以下载 Pydio Cells 了。在本节中,你将设置 pydio
用户,下载 Pydio Cells,设置安装目录和环境变量,并允许 Pydio Cells 在特权端口上运行。
使用以下命令创建一个新的用户和组 pydio
。
sudo useradd -m -s /bin/bash pydio
使用以下命令创建新目录 /opt/pydio/bin
和 /var/cells
。然后将这两个目录的所有权更改为用户 pydio
。
sudo mkdir -p /opt/pydio/bin /var/cells
sudo chown -R pydio:pydio /opt/pydio/bin /var/cells
现在使用 nano
编辑器创建一个新的 env 文件 /etc/profile.d/cells-env.sh
。
sudo nano /etc/profile.d/cells-env.sh
输入以下脚本,为 Pydio Cells 设置环境变量。请确保将 CELLS_EXTRERNAL
地址更改为与你的 Pydio 安装的域名匹配。
export CELLS_WORKING_DIR=/var/cells
export CELLS_BIND=127.0.0.1:8080
export CELLS_EXTERNAL=https://cells.example.local
完成后,保存并退出文件。
现在,运行以下命令,使 env 文件 /etc/profile.d/cells-env.sh
可执行。
sudo chmod +x /etc/profile.d/cells-env.sh
接下来,运行以下命令,将适用于 Linux 的 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}
下载完成后,运行以下命令,使 cells
二进制文件可执行,并允许它绑定在特权端口上。
sudo chmod a+x /opt/pydio/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
身份登录:
su - pydio
使用以下命令检查 Pydio Cells 的环境变量 - 确保输出与 env 文件 /etc/profile.d/cells-env.sh
中的内容匹配。
echo $CELLS_WORKING_DIR
echo $CELLS_BIND
echo $CELLS_EXTERNAL
最后,使用以下命令检查 cells
版本。
cells version
在以下输出中,你可以看到 Pydio Cells 的版本。
通过命令行安装 Pydio Cells
现在你将从命令行开始安装 Pydio Cells。使用 cells
命令,你将使用 MariaDB 数据库设置 Pydio Cells 安装,设置管理员用户和密码,并设置用于存储用户数据的存储位置。
首先,运行以下命令,从终端配置 Pydio Cells 安装。
cells configure --cli
现在你将被提示进行以下配置:
- 数据库连接:选择通过 TCP,然后输入你的 MariaDB 数据库主机、端口、用户和密码的详细信息。
- MongoDB 配置:输入 n 表示否。
- 管理用户配置:输入你的 Pydio Cells 的管理员用户和密码。
- 默认存储位置:按 ENTER 使用默认值并继续。
此过程完成后,你将看到以下输出:
为 Pydio Cells 设置 systemd 服务文件
在上一步中,你可以使用 cells start
命令启动 Pydio Cells。为了更方便,你将使用 systemd systemctl
来管理 Pydio Cells 服务。因此,现在你将创建一个新的 systemd 服务文件。
使用 nano
编辑器创建一个新的 /etc/systemd/system/cells.service
文件。
sudo nano /etc/systemd/system/cells.service
插入以下配置以将 Pydio Cells 作为 systemd 服务运行。请确保使用你的域名更改 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=127.0.0.1:8080
Environment=CELLS_EXTERNAL=https://cells.example.local
[Install]
WantedBy=multi-user.target
保存文件并退出编辑器。
现在,运行以下命令来重新加载 systemd 管理器。
sudo systemctl daemon-reload
最后,执行以下 systemctl
命令来启动、启用和验证 cells
服务。
sudo systemctl enable --now cells
sudo systemctl status cells
在此输出中,你可以看到 cells
服务作为 systemd 服务在后台运行。
将 Httpd 配置为反向代理
此时,Pydio Cells 在你的 Alma Linux 服务器上以端口 8080
运行。为了使客户端可以访问它,你将创建一个 Httpd 虚拟主机文件作为 Pydio Cells 服务器的反向代理。你还将从 Letsencrypt 生成 SSL/TLS 证书,以确保客户端和 Pydio Cells 服务器之间的数据传输安全。
首先,运行以下 dnf
命令以将 certbot
安装到你的系统。
sudo dnf install certbot -y
现在,创建一个新的虚拟 Web 根目录,并将所有权更改为 apache
用户。
sudo mkdir -p /var/www/html/cells/public_html
sudo chown -R apache:apache /var/www/html/cells/public_html
运行以下 certbot
命令,为 Pydio Cells 生成 SSL/TLS 证书。请确保使用你的信息更改电子邮件地址和域名。
sudo certbot certonly --agree-tos --email user@email.com --no-eff-email --webroot -w /var/www/html/cells/public_html -d cells.example.local
接下来,使用 nano
编辑器创建一个新的 Httpd 虚拟主机配置 /etc/httpd/conf.d/pydio.conf
。
sudo nano /etc/httpd/conf.d/pydio.conf
插入以下配置,并确保使用你的域名更改 ServerName
选项。
<VirtualHost *:80>
ServerName cells.example.local
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{SERVER_NAME} =cells.example.local
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName cells.example.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.example.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cells.example.local/privkey.pem
#Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
保存文件,并在完成后退出编辑器。
现在,运行以下 apachectl
命令以验证你的 Apache 语法。如果你有正确的 Apache 配置,你将看到输出 Syntax is OK
。
sudo apachectl configtest
最后,运行以下 systemctl
命令来重新启动 httpd
Web 服务器并应用你的更改。完成此操作后,你的 Pydio Cells 安装应该已完成并且可访问。
sudo systemctl restart httpd
访问 Pydio Cells
打开你的 Web 浏览器并访问你的 Pydio Cells 安装的域名,例如 https://cells.example.local。如果安装成功,你将看到 Pydio Cells 登录页面。
输入你的管理员用户名和密码以登录。
如果你有正确的凭据,你将看到如下所示的 Pydio Cells 用户仪表板。
从这里,你现在可以尝试将文件从你的本地计算机上传到 Pydio Cells 服务器。在以下屏幕截图中,我已将文件上传到 Pydio Cells 并且成功。
相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site