如何在 Linux 服务器上部署 Pydio Cells 教程

简介

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 命令,在你的系统上打开 httphttps 端口。然后,重新加载 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

我的博客:https://blog.ivwv.site

相关推荐
c洛#1 分钟前
Linux缓存管理:如何安全地清理系统缓存
linux·运维·缓存
小林熬夜学编程1 小时前
【Linux网络编程】第十三弹---构建HTTP响应与请求处理系统:从HttpResponse到HttpServer的实战
linux·运维·服务器·c语言·网络·c++·http
流穿1 小时前
ELK系列-(五)指标收集-MetricBeat(下)
linux·运维·ubuntu·elk·docker·容器
chengf2231 小时前
ubuntu 开机自动mount 的方法
linux·服务器·ubuntu
catmes1 小时前
使用docker compose安装gitlab
运维·docker·容器·gitlab·敏捷开发·devops
月如琉璃1 小时前
2.利用docker进行gitlab服务器迁移
服务器·docker·gitlab
Zfox_1 小时前
【Linux】网络基础探索:开启你的网络之旅
linux·服务器·网络
u0109053592 小时前
白嫖内网穿透之神卓互联Linux安装教程(树莓派)
linux·运维·服务器
孙同学_2 小时前
【Liunx篇】基础开发工具-自动化构建-make/Makefile
linux·运维·自动化
第八学期2 小时前
Tomcat快速入门(Java环境介绍+Tomcat快速安装+Tomcat配置文件+Tomcat配置虚拟主机+Tomcat管理界面)
java·运维·开发语言·tomcat