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

简介

Pydio Cells 是一个开源的文档共享和协作平台,专为你的组织设计。它允许你在组织内部分享文档和文件,并让你完全掌控文档共享环境。

在本教程中,我们将向你展示如何在 Alma Linux 9 服务器上安装 Pydio Cells。你将使用 MariaDB 数据库服务器和 Httpd Web 服务器来安装 Pydio Cells。

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

img

  • 按照自己需求选择配置,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

img

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

img

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

img

  • 到此为止,我们的云服务器就远程连接上了。

安装依赖

在安装 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

img

安装完成后,运行下面的 systemctl 命令来启动、启用和验证 httpd 服务。你将会看到 httpd 服务正在运行且已启用。

sudo systemctl enable --now httpd
sudo systemctl status httpd

img

现在,运行以下命令来启动并启用 mariadb 服务。然后,验证它以确保服务正在运行。

sudo systemctl enable --now mariadb
sudo systemctl status mariadb

在以下输出中,你可以看到 MariaDB 服务器正在运行且已启用。

img

最后,运行下面的 firewall-cmd 命令,在你的系统上打开 httphttps 端口。然后,重新加载 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;

img

现在,检查用户 pydio 的权限,以确保对数据库 cells 的权限。

SHOW GRANTS FOR 'pydio'@'localhost';

你可以在下面看到数据库 cells 可以通过用户 pydio 访问。

img

输入 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

img

最后,使用以下命令检查 cells 版本。

cells version

在以下输出中,你可以看到 Pydio Cells 的版本。

img

通过命令行安装 Pydio Cells

现在你将从命令行开始安装 Pydio Cells。使用 cells 命令,你将使用 MariaDB 数据库设置 Pydio Cells 安装,设置管理员用户和密码,并设置用于存储用户数据的存储位置。

首先,运行以下命令,从终端配置 Pydio Cells 安装。

cells configure --cli

现在你将被提示进行以下配置:

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

此过程完成后,你将看到以下输出:

img

为 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 服务在后台运行。

img

将 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.localRewriteEngine 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 combinedSSLCertificateFile /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

img

访问 Pydio Cells

打开你的 Web 浏览器并访问你的 Pydio Cells 安装的域名,例如 https://cells.example.local。如果安装成功,你将看到 Pydio Cells 登录页面。

输入你的管理员用户名和密码以登录。

img

如果你有正确的凭据,你将看到如下所示的 Pydio Cells 用户仪表板。

img

从这里,你现在可以尝试将文件从你的本地计算机上传到 Pydio Cells 服务器。在以下屏幕截图中,我已将文件上传到 Pydio Cells 并且成功。

img

相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/890056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OkHttp源码分析:分发器任务调配,拦截器责任链设计,连接池socket复用

目录 一&#xff0c;分发器和拦截器 二&#xff0c;分发器处理异步请求 1.分发器处理入口 2.分发器工作流程 3.分发器中的线程池设计 三&#xff0c;分发器处理同步请求 四&#xff0c;拦截器处理请求 1.责任链设计模式 2.拦截器工作原理 3.OkHttp五大拦截器 一&#…

(2024年最新)Linux(Ubuntu) 中配置静态IP(包含解决每次重启后配置文件失效问题)

Hello! 亲爱的小伙伴们&#xff0c;大家好呀&#xff08;Smile~&#xff09;&#xff01;我是Huazzi&#xff0c;欢迎观看本篇博客&#xff0c;接下来让我们一起来学习一下Ubuntu 中如何配置静态IP吧&#xff01;祝你有所收获&#xff01; 提前对Linux有所了解的小伙伴应该知道…

vue3渲染el-tree组件,给默认选中的节点,禁用所有子节点

实现逻辑&#xff1a;给默认选中节点的所有子节点添加一个disabled属性&#xff0c;以此禁用子节点。 编写代码 <template><el-tree :props"{ children: children, label: name }" :data"treeListData" show-checkbox node-key"id" r…

uniapp中vuex(全局共享)的应用

一、Vuex概述 1.1 官方解释 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 它采用集中式存储管理 应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化 - Vuex 也集成到 Vue 的官方调试工具 devtools extension&#xff0c;提供了诸…

Unity中触发器Trigger无法被射线检测到的问题

今天在做项目的时候发现,同一个物体,当他是碰撞器的时候,可以被射线检测到. 但是当他变成触发器的时候,射线就检测不到了??? 本来以为就是这样的,但是查了资料发现并没有这样的限制,触发器也是可以正常被射线检测的 到处查资料都没有发现问题,后来发现是下面这个设置不知道…

搭建springmvc项目

什么是springmvc MVC它是一种设计理念。把程序按照指定的结构来划分: Model模型 View视图 Controller控制层 springmvc框架是spring框架的一个分支。它是按照mvc架构思想设计的一款框架。 springmvc的主要作用: 接收浏览器的请求数据&#xff0c;对数据进行处理&#xff0c;…

超越 RAG 基础:AI 应用的高级策略

作者&#xff1a;来自 Elastic Elastic Platform Team 我们最近与 Cohere 举办的虚拟活动深入探讨了检索增强生成 (retrieval augmented generation - RAG) 的世界&#xff0c;重点讨论了在概念验证阶段之后构建 RAG 应用程序的关键注意事项。我们的演讲者是 Elastic 的首席解…

音频开发中常见的知识体系

在 Linux 系统中&#xff0c;/dev/snd 目录包含与声音设备相关的文件。每个文件代表系统中的一部分音频硬件或音频控制接口。以下是你列出的文件及其含义&#xff1a; 一.基本术语 样本长度(sample)&#xff1a;样本是记录音频数据最基本的单位&#xff0c;计算机对每个通道采…

贪心算法 part01

class Solution { public:int maxSubArray(vector<int>& nums) {int result INT32_MIN;int count 0;for (int i 0; i < nums.size(); i) {count nums[i];if (count > result) { // 取区间累计的最大值&#xff08;相当于不断确定最大子序终止位置&#xff…

Ubuntu 安装texstudio sty与texlive

手动安装需要的包 访问CTAN网站&#xff08;Comprehensive TeX Archive Network&#xff09;并下载enumitem宏包&#xff1a; enumitem CTAN页面下载后&#xff0c;将宏包解压到/usr/share/texmf/tex/latex/下。 可打开texstudio/帮助/宏包帮助下载。 如果不想手动安装一个个…

Moretl安全日志采集工具

永久免费: 至Gitee下载 使用教程: Moretl使用说明 使用咨询: 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架…

CAN配置---波特率中断引脚等---autochips-AC7811-ARM-M3内核

1、配置工具 虽然不怎么好用&#xff0c;但比没有强多了。具体看图&#xff1a; 时钟选着 NVIC配置 GPIO配置 2、生成的具体配置信息 NXP的配置工具里面&#xff0c;具体的波特率可以直接显示&#xff0c;这个工具没有&#xff0c;怎么办&#xff1f; 它放到了生成的代码里面…

【ETCD】ETCD 架构揭秘:内部各组件概览

ETCD 的主要组件及它们之间的关联关系如下&#xff1a; 目录 1. Client&#xff08;客户端&#xff09;2. gRPC 接口3. Etcd Server Main Loop&#xff08;ETCD 主循环&#xff09;4. Raft&#xff08;共识模块&#xff09;5. Peer Etcd Nodes&#xff08;ETCD 集群节点&#x…

乐凡信息智能安全管控方案:助力油气田行业安全管控多方位升级

我国油田地域广阔&#xff0c;分布着大量各种油井&#xff0c;油井开采设备的连续稳定运行是保证石油开采的首要条件。然而&#xff0c;由于油田多位于特殊地理环境中&#xff0c;因而实现油井之间的通信首要问题就是要克服地理环境所带来的限制&#xff0c;传统通信系统的建设…

windows 使用python共享网络给另外一个网卡

# -*- coding: utf-8 -*- import subprocessdef open_share(to_shared_adapter, from_shared_adapter):"""打开以太网的网络共享:return: None"""powershell_script f"""# Register the HNetCfg library (once)# regsvr32 hnetc…

深度学习实战智能交通计数

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化&#xff0c;该数据集包含丰富的车辆目标图像样本…

rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别

在Git版本控制系统中&#xff0c;rebase 和 merge 是两种不同的操作&#xff0c;用于合并分支。rebase A onto master 和 merge master into A 虽然最终目的都是将两个分支的更改合并在一起&#xff0c;但它们在处理方式和结果上有所不同。 rebase ‘A’ onto ‘master’ 含义…

MySQL Explain 分析SQL语句性能

一、EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 &#xff08;1&#xff09; 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读取顺序数据读取…

关于SAP Router连接不稳定的改良

这个也是网上看来的&#xff0c;之前在用的时候也在想是不是建立一个长连接&#xff0c;就不至于断线。今天正好看到。 关于SAP Router连接不稳定的改良 我们在使用SAPRouter时经常会碰到断线&#xff0c;其发生原因有很多&#xff0c;如&#xff1a;网络不稳定、操作间隔时间…

游泳溺水识别数据集,对9984张原始图片进行YOLO,COCO JSON, VOC XML 格式的标注,平均识别率在91.7%以上

游泳溺水识别数据集&#xff1a; 对9984张原始图片进行YOLO&#xff0c;COCO JSON, VOC XML 格式的标注&#xff0c;平均识别率在91.7&#xff05;以上 &#xff0c;可识别泳池或者水库中是否有人溺水。 数据集分割 训练组98&#xff05; 9818图片 有效集&#xff05;…