Гид по технологиям

Установка Pydio Cells на Rocky Linux 9 с MariaDB и Apache

• 7 min read • DevOps • Обновлено 28 Nov 2025
Установка Pydio Cells на Rocky Linux 9
Установка Pydio Cells на Rocky Linux 9

Важное: используйте реальную доменную запись, рабочую учётную запись с правами sudo и храните пароли в защищённом хранилище.

Ключевые термины (в две строки)

  • Pydio Cells — сервис обмена файлами и совместной работы, реализованный как один исполняемый бинарник.
  • reverse proxy — обратный прокси (httpd) передаёт HTTPS-запросы к локальному процессу Cells.

Содержание

  • Предварительные требования
  • Установка зависимостей
  • Настройка firewalld
  • Настройка MariaDB и создание базы данных
  • Создание системного пользователя и переменных окружения
  • Загрузка и установка бинарника Pydio Cells
  • Конфигурация через CLI
  • Запуск как systemd-сервис
  • Настройка httpd в режиме обратного прокси и получение SSL
  • Тестирование и отладка
  • Резервное копирование, обновление и безопасность
  • Роль‑ориентированные чек‑листы и критерии приёмки
  • Краткий справочник команд

Предварительные требования

  • Сервер с Rocky Linux 9.
  • Непривилегированный пользователь с sudo.
  • Доменное имя, указывающее на IP сервера (A/AAAA).
  • SELinux в режиме permissive (или корректно настроенный policy).

Установка зависимостей

Pydio Cells запускается как единый бинарник и в этой инструкции мы используем Apache (httpd) как обратный прокси и MariaDB для хранения данных.

Установите EPEL, MariaDB, httpd, certbot и wget:

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

Подтвердите установку нажатием Y.

Установка зависимостей

Запустите и включите httpd:

sudo systemctl start httpd  
sudo systemctl enable httpd

Проверьте статус:

sudo systemctl status httpd

Проверка httpd

Запустите и включите MariaDB:

sudo systemctl start mariadb  
sudo systemctl enable mariadb

Проверьте статус:

sudo systemctl status mariadb

Проверка MariaDB

Настройка Firewalld

Откройте HTTP и HTTPS в брандмауэре и перезагрузите конфигурацию:

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

Проверьте текущую зону и сервисы:

sudo firewall-cmd --list-all

Настройка firewalld

Совет: если вы используете нестандартную зону, добавьте сервисы в неё явно через –zone=public или нужную вам.

Настройка MariaDB

Защитите установку и задайте пароль для root:

sudo mariadb-secure-installation

Во время диалога рекомендуется отвечать так:

  • Переключить локальную аутентификацию на unix_socket? n
  • Установить пароль root? y (введите сильный пароль)
  • Удалить анонимного пользователя? y
  • Удалить тестовую базу данных? y
  • Запретить удалённые входы root? y
  • Перезагрузить привилегии? y

Создайте базу и пользователя для Pydio (измените пароль на собственный):

sudo mariadb -u root -p

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

Проверьте привилегии:

SHOW GRANTS FOR 'pydio'@'localhost';

Выйдите командой quit.

Создание пользователя и базы

Создание системного пользователя и переменных окружения

Создайте Unix‑пользователя для запуска Cells и необходимые директории:

sudo useradd -m -s /bin/bash pydio
sudo mkdir -p /opt/pydio/bin /var/cells  
sudo chown -R pydio: /opt/pydio /var/cells

Создайте файл с глобальными переменными окружения и сделайте его исполняемым:

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

Вставьте и сохраните:

export CELLS_WORKING_DIR=/var/cells  
export CELLS_BIND=127.0.0.1:8080  
export CELLS_EXTERNAL=https://cells.example.com

Назначения переменных:

  • CELLS_WORKING_DIR — рабочая директория для данных и конфигурации Pydio.
  • CELLS_BIND — адрес и порт, на котором слушает сервис (локально).
  • CELLS_EXTERNAL — публичный URL для доступа пользователей (используйте ваш домен).

Загрузка Pydio Cells

Скачайте бинарник в /opt/pydio/bin:

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

Сделайте файл исполняемым и добавьте привилегию на привязку к привилегированным портам (если потребуется) и ссылку в /usr/local/bin:

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  

echo $CELLS_WORKING_DIR  
echo $CELLS_BIND  
echo $CELLS_EXTERNAL

Проверка переменных окружения

Проверьте версию:

cells version

Проверка версии Pydio Cells

Если версия отображается, бинарник работоспособен.

Конфигурация Pydio через командную строку

Запустите CLI‑конфигуратор:

cells configure --cli

Ответьте на вопросы:

  • Соединение с БД: выбрать TCP и указать хост (обычно localhost), порт 3306, имя пользователя pydio и пароль.
  • MongoDB: n (если не используете).
  • Администратор Pydio: задайте админ‑логин и надёжный пароль.
  • Директория хранения по умолчанию: ENTER для значения по умолчанию или укажите путь.

После успешной конфигурации установщик выдаст “Installation Finished”.

Установка через CLI

Запуск Pydio Cells как systemd‑сервиса

Создайте юнит systemd /etc/systemd/system/cells.service:

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

Вставьте конфигурацию (отредактируйте переменные при необходимости):

[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
sudo systemctl start cells  
sudo systemctl enable cells
sudo systemctl status cells

Статус systemd для Pydio Cells

Если service не стартует — смотрите журнал через journalctl -u cells -b и проверьте права на директории и переменные окружения.

Настройка httpd обратного прокси и SSL

Создайте публичную директорию для проверки certbot и отдачи статических файлов:

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

Получите сертификат Let’s Encrypt (замените email и домен):

sudo certbot certonly --agree-tos --email admin@example.com --no-eff-email --webroot -w /var/www/html/cells/public_html -d cells.example.com

Создайте конфигурацию виртуального хоста /etc/httpd/conf.d/cells.conf:

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

Вставьте (удостоверьтесь, что имя сервера и пути к сертификатам совпадают с вашими):

  
ServerName cells.example.com  
  
RewriteEngine On  
RewriteCond %{HTTPS} off  
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}  
  
RewriteCond %{SERVER_NAME} =cells.example.com  
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]  
  
  
  
ServerName cells.example.com  
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.com/fullchain.pem  
SSLCertificateKeyFile /etc/letsencrypt/live/cells.example.com/privkey.pem  
#Include /etc/letsencrypt/options-ssl-apache.conf  

Проверьте синтаксис httpd и перезапустите службу:

sudo apachectl configtest  
sudo systemctl restart httpd

Откройте в браузере https://cells.example.com и войдите под учетной записью администратора.

Страница входа Pydio Cells

После входа вы должны увидеть панель управления Pydio Cells.

Панель Pydio Cells

Тестирование и отладка

Список тестов, которые стоит выполнить сразу после установки:

  • Доступ по HTTPS к главной странице и странице входа.
  • Вход под админом и создание тестового пользователя.
  • Загрузка и скачивание файла (малого и большого размера).
  • Работа синхронизации (если используется Cells‑Sync) и проверка ws/wss соединений.
  • Проверка логов: /var/log/httpd/error.log, journalctl -u cells, и логи в рабочей директории Pydio.

Типичные проблемы и решения:

  • 502/504 — проверьте, слушает ли cells на 127.0.0.1:8080 (ss -ltnp | grep 8080) и совпадают ли переменные окружения.
  • Ошибки SSLProxy — убедитесь, что SSLProxyEngine On и параметры проверки отключены при обходе самоподписанных сертификатов.
  • Проблемы с правами на /var/cells — проверьте владельца и права chown -R pydio:pydio /var/cells.

Безопасность и твики (Hardening)

  • SELinux: либо держите SELinux в permissive для отладки, либо создайте policy для httpd и cells (рекомендуется production — настроить правильные контексты).
  • Ограничьте доступ к MariaDB только с localhost или доверенных адресов.
  • Регулярно обновляйте пакеты: sudo dnf update и проверяйте обновления Pydio согласно релиз‑нотам.
  • Установите fail2ban для защиты от bruteforce на httpd и SSH.
  • Убедитесь, что бэкапы конфигурации и данных зашифрованы и хранятся вне сервера.

Резервное копирование и обновление

Резервное копирование состоит минимум из:

  • Дамп базы данных:
mysqldump -u root -p cells > /root/backup/cells-sql-$(date +%F).sql
  • Резерв копии каталога CELLS_WORKING_DIR (/var/cells) и конфигов /etc/httpd, /etc/letsencrypt, /opt/pydio/bin:
tar czf /root/backup/cells-files-$(date +%F).tar.gz /var/cells /etc/httpd /etc/letsencrypt /opt/pydio

Обновление Pydio:

  1. Остановите systemd‑сервис cells.
  2. Сделайте резервную копию /var/cells и БД.
  3. Замените бинарник /opt/pydio/bin/cells новой версией и установите права.
  4. Перезапустите сервис и проверьте логи.

Роль‑ориентированные чек‑листы

Administrator:

  • Настроить админ‑учётную запись и MFA.
  • Проверить сертификаты и бэкапы.
  • Настроить политики хранения и доступов.

Ops/DevOps:

  • Настроить systemd, мониторинг, логирование (Prometheus, ELK или аналог).
  • Настроить ротацию логов и бэкапы.

Security Officer:

  • Провести аудит прав доступа к файловой системе и БД.
  • Включить TLS для всех внутренних соединений (по возможности).

Критерии приёмки

  • Pydio Cells доступен по HTTPS: URL открывается и возвращает страницу логина.
  • Админ может войти и создать пользователя.
  • Файлы загружаются и скачиваются без ошибок.
  • Бэкап БД и рабочего каталога восстановим в тестовом окружении.
  • Сервис автоматически запускается после перезагрузки сервера.

Тест‑кейсы и приёмочные проверки

  1. TC-01: Доступность HTTPS — ожидаемый результат: 200 OK и страница логина.
  2. TC-02: Авторизация администратора — ожидание: успешный вход.
  3. TC-03: Загрузка файла 10 МБ — ожидание: файл загружен и доступен для скачивания.
  4. TC-04: Загрузка файла 2 ГБ (если поддерживается) — ожидание: согласно лимитам, передача завершается.
  5. TC-05: Отказ в доступе неаутентифицированному пользователю — ожидание: перенаправление на логин.

Частые сценарии ошибок и как их решать

  • “Cells не запускается” — смотрите journalctl -u cells и проверьте, что переменные окружения доступны сервису (установлены в unit). Проверяйте права на рабочую директорию.
  • 404/статический контент не отдается — убедитесь, что webroot для certbot совпадает и файлы действительно в /var/www/html/cells/public_html.
  • Неправильные сертификаты — проверьте файлы в /etc/letsencrypt/live/DOMAIN и перезагрузите httpd.

Модель принятия решений (коротко)

  • Для малых команд — запускать Cells как отдельный systemd‑сервис и использовать httpd как простое SSL‑обёртку.
  • Для предприятий — использовать централизованные прокси/балансировщики, управляемые сертификаты и HA‑настройки для базы данных.

Быстрый справочник команд (Cheat sheet)

  • Запуск/старт httpd: sudo systemctl start|enable httpd
  • Проверить порты: ss -ltnp | grep 8080
  • Логи cells: journalctl -u cells -f
  • Резерв БД: mysqldump -u root -p cells > backup.sql
  • Получить сертификат: sudo certbot certonly --webroot -w /var/www/html/cells/public_html -d your.domain

Локальные рекомендации и подводные камни

  • Использование IP вместо домена для CELLS_EXTERNAL приведёт к проблемам с TLS и редиректами.
  • SELinux может блокировать httpd‑proxy запросы — в продакшне лучше создать правильные контексты SELinux вместо отключения.

Вывод

Вы успешно установили Pydio Cells и настроили его для работы за httpd‑reverse‑proxy с поддержкой TLS от Let’s Encrypt и хранением данных в MariaDB. Следующие шаги: настроить резервное копирование, мониторинг и периодические обновления.


Важно: сохраняйте все учётные данные в безопасном хранилище и проверяйте совместимость версий Pydio с MariaDB перед обновлением.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро