简介
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
来确认安装。
bash
sudo dnf install epel-release mariadb-server httpd wget nano
安装完成后,运行下面的 systemctl
命令来启动、启用和验证 httpd
服务。你将会看到 httpd
服务正在运行且已启用。
bash
sudo systemctl enable --now httpd
sudo systemctl status httpd
现在,运行以下命令来启动并启用 mariadb
服务。然后,验证它以确保服务正在运行。
bash
sudo systemctl enable --now mariadb
sudo systemctl status mariadb
在以下输出中,你可以看到 MariaDB 服务器正在运行且已启用。
最后,运行下面的 firewall-cmd
命令,在你的系统上打开 http
和 https
端口。然后,重新加载 firewalld 规则以应用你的更改。
bash
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
命令。
bash
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 密码。
bash
sudo mariadb -u root -p
运行以下查询以创建新的数据库 cells
和新的用户 pydio
,密码为 p4ssw0rd
。你可以根据需要调整数据库详细信息。
sql
CREATE DATABASE cells;
CREATE USER 'pydio'@'localhost' IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON cells.* to 'pydio'@'localhost';
FLUSH PRIVILEGES;
现在,检查用户 pydio
的权限,以确保对数据库 cells
的权限。
sql
SHOW GRANTS FOR 'pydio'@'localhost';
你可以在下面看到数据库 cells
可以通过用户 pydio
访问。
输入 quit
以退出 MariaDB 服务器。
下载 Pydio Cells
配置完 MariaDB 数据库后,你就可以下载 Pydio Cells 了。在本节中,你将设置 pydio
用户,下载 Pydio Cells,设置安装目录和环境变量,并允许 Pydio Cells 在特权端口上运行。
使用以下命令创建一个新的用户和组 pydio
。
bash
sudo useradd -m -s /bin/bash pydio
使用以下命令创建新目录 /opt/pydio/bin
和 /var/cells
。然后将这两个目录的所有权更改为用户 pydio
。
bash
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
。
bash
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
可执行。
bash
sudo chmod +x /etc/profile.d/cells-env.sh
接下来,运行以下命令,将适用于 Linux 的 Pydio Cells 二进制文件下载到 /opt/pydio/bin/cells
。
bash
export distribId=cells
wget -O /opt/pydio/bin/cells https://download.pydio.com/latest/${distribId}/release/{latest}/linux-amd64/${distribId}
下载完成后,运行以下命令,使 cells
二进制文件可执行,并允许它绑定在特权端口上。
bash
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
身份登录:
bash
su - pydio
使用以下命令检查 Pydio Cells 的环境变量 - 确保输出与 env 文件 /etc/profile.d/cells-env.sh
中的内容匹配。
bash
echo $CELLS_WORKING_DIR
echo $CELLS_BIND
echo $CELLS_EXTERNAL
最后,使用以下命令检查 cells
版本。
bash
cells version
在以下输出中,你可以看到 Pydio Cells 的版本。
通过命令行安装 Pydio Cells
现在你将从命令行开始安装 Pydio Cells。使用 cells
命令,你将使用 MariaDB 数据库设置 Pydio Cells 安装,设置管理员用户和密码,并设置用于存储用户数据的存储位置。
首先,运行以下命令,从终端配置 Pydio Cells 安装。
bash
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
文件。
bash
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 管理器。
bash
sudo systemctl daemon-reload
最后,执行以下 systemctl
命令来启动、启用和验证 cells
服务。
bash
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
安装到你的系统。
bash
sudo dnf install certbot -y
现在,创建一个新的虚拟 Web 根目录,并将所有权更改为 apache
用户。
bash
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 证书。请确保使用你的信息更改电子邮件地址和域名。
bash
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
。
bash
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
。
bash
sudo apachectl configtest
最后,运行以下 systemctl
命令来重新启动 httpd
Web 服务器并应用你的更改。完成此操作后,你的 Pydio Cells 安装应该已完成并且可访问。
bash
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