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

Установка ownCloud на Rocky Linux — пошаговый гид

7 min read DevOps Обновлено 22 Oct 2025
Установка ownCloud на Rocky Linux
Установка ownCloud на Rocky Linux

В этой статье показан полный процесс установки и настройки ownCloud на сервере Rocky Linux: подготовка репозиториев, установка PHP 7.4, Apache (httpd), MariaDB, Redis, настройка SELinux и firewalld, создание виртуального хоста и финальная настройка cron. Приведены рекомендации по безопасности, резервному копированию и вариантам развёртывания.

О чём этот материал

Этот пошаговый гид рассчитан на системных администраторов и инженеров, желающих развернуть самостоятельный файловый хостинг на базе ownCloud. В руководстве используются команды для Rocky Linux 8.x и показаны общие рекомендации по отладке и безопасности.

Важно понять в одну строку

  • ownCloud — это свободное ПО для организации self-hosted облачного хранилища и синхронизации файлов; сервер написан на PHP/JS/Go.

Кому это подходит

  • Сисадмины,DevOps-инженеры, технические менеджеры, которые хотят контролировать данные и инфраструктуру.

Содержание

  • Предварительные требования
  • Установка зависимостей и репозиториев
  • Установка Redis
  • Установка PHP 7.4 и расширений
  • Установка Apache httpd и настройка firewalld
  • Установка и защита MariaDB
  • Загрузка ownCloud и проверка целостности
  • Настройка виртуального хоста httpd с HTTPS
  • Настройка SELinux для ownCloud
  • Инсталляция ownCloud через веб-интерфейс
  • Настройка фоновых задач cron
  • Безопасность и бэкап
  • Альтернативные варианты развёртывания
  • Тесты и критерии приёмки
  • Чеклисты по ролям
  • Короткий глоссарий и вывод

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

Требуется:

  • Сервер Rocky Linux 8.x с правами root или пользователем с sudo.
  • Домен или поддомен, указывающий на IP сервера (в примерах используется howtoforge.local).
  • Доступ в интернет для загрузки пакетов и сертификатов Let’s Encrypt.

Пример в статье использует хостнейм owncloud-server и адрес 192.168.5.100. Замените на свои значения.

Установка основных зависимостей и репозиториев

  1. Установите репозиторий EPEL:
sudo dnf install epel-release

Установка EPEL через dnf — вывод терминала

  1. Подготовьте репозиторий Redis (далее включим версию 6):
sudo dnf module reset redis
sudo dnf module enable redis:6

Подтвердите вводом y.

Активация модуля Redis 6 — вывод терминала

  1. Установите базовые пакеты, используемые ownCloud:
sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagick

Подтвердите y.

Установка зависимостей — вывод терминала

  1. Запустите и включите Redis:
sudo systemctl enable --now redis
sudo systemctl status redis

Проверка статуса Redis — вывод терминала

Совет

  • Redis используют для кеширования и ускорения работы. В продакшне рекомендовано настроить аутентификацию Redis и ограничения доступа по сети.

Установка PHP 7.4 и расширений

Примечание

  • На момент написания ownCloud в стабильной ветке требует PHP 7.4. PHP 8 пока может быть несовместимым с некоторыми расширениями ownCloud.
  1. Установите REMI репозиторий и включите поток для PHP 7.4:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module reset php
sudo dnf module enable php:remi-7.4

Добавление REMI репозитория — вывод терминала

  1. Установите PHP и необходимые расширения:
sudo dnf install --enablerepo=remi php php-intl php-mysql php-mbstring \
  php-imagick php-igbinary php-gmp php-bcmath \
  php-curl php-gd php-zip php-imap php-ldap \
  php-bz2 php-ssh2 php-common php-json \
  php-xml php-devel php-apcu php-redis \
  php-smbclient php-pear php-phpseclib

Подтвердите y.

Установка PHP 7.4 и расширений — вывод терминала

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

php --version

Проверка версии PHP — вывод терминала

Пояснение

  • php-apcu и php-redis используются для кэширования объектов и увеличения производительности.

Установка Apache httpd и настройка брандмауэра

  1. Установите пакеты httpd и SSL-модуль:
sudo dnf install httpd httpd-devel httpd-tools mod_ssl

Установка httpd — вывод терминала

  1. Запустите и включите httpd:
sudo systemctl enable --now httpd
sudo systemctl status httpd

Проверка статуса httpd — вывод терминала

  1. Откройте порты в firewalld для HTTP и HTTPS:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-services

Настройка firewalld — вывод терминала

Проверка через браузер

  • Создайте тестовый phpinfo файл и убедитесь, что httpd и PHP работают совместно:
cat <
EOF

Откройте http://YOUR_SERVER_IP/info.php и проверьте страницу PHPINFO.

PHPINFO — вывод в браузере

Установка и настройка MariaDB

ownCloud поддерживает несколько СУБД. Для продакшна рекомендуется MariaDB/MySQL или PostgreSQL.

  1. Установите MariaDB:
sudo dnf install mariadb-server
sudo systemctl enable --now mariadb
sudo systemctl status mariadb

Установка MariaDB — вывод терминала

  1. Защитите установку MariaDB:
sudo mysql_secure_installation

Отвечайте согласно подсказкам, обычно:

  • Не менять метод аутентификации на unix_socket — введите n.
  • Задать пароль root — y и введите надёжный пароль.
  • Запретить удалённый вход root — y.
  • Удалить анонимных пользователей — y.
  • Удалить тестовую базу — y.
  • Перезагрузить привилегии — y.
  1. Создайте базу и пользователя для ownCloud:
sudo mysql -u root -p
CREATE DATABASE owncloud;
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'owncloudpass';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

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

Пояснение

  • В продакшне используйте сложный пароль и ограничьте доступ к базе по сети, настроив брандмауэр и bind-address в конфигурации MariaDB при необходимости.

Загрузка ownCloud и проверка целостности

  1. Перейдите в рабочую папку и скачайте пакет ownCloud:
cd /var/www
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256
  1. Проверьте контрольную сумму:
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2

Ожидаемый вывод для корректного архива: OK

  1. Распакуйте и назначьте владельца:
sudo tar -xvjf owncloud-complete-latest.tar.bz2
sudo chown -R apache:apache /var/www/owncloud

Пояснение

  • В большинстве дистрибутивов Apache работает от пользователя apache; при использовании php-fpm это может быть другой пользователь (например, www-data). Проверьте реалии вашей системы.

Настройка виртуального хоста httpd и HTTPS

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


  ServerName howtoforge.local
  Redirect permanent / https://howtoforge.local/



  ServerName howtoforge.local
  DocumentRoot /var/www

  Protocols h2 http:/1.1

  
    Redirect permanent / https://howtoforge.local/
  

  ErrorLog /var/log/httpd/howtoforge.local-error.log
  CustomLog /var/log/httpd/howtoforge.local-access.log combined

  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/howtoforge.local/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/howtoforge.local/privkey.pem

  SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

  SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
  SSLCompression off

  Header always set Strict-Transport-Security "max-age=63072000"

  Alias /owncloud "/var/www/owncloud/"

  
    Options +FollowSymlinks
    AllowOverride All

    
    Dav off
    

    SetEnv HOME /var/www/owncloud
    SetEnv HTTP_HOME /var/www/owncloud

  

Сохраните файл.

Проверьте конфигурацию и перезапустите httpd:

sudo apachectl configtest
sudo systemctl restart httpd

Настройка httpd — вывод терминала

SSL сертификат

  • Для получения сертификата от Let’s Encrypt используйте certbot или другой ACME-клиент. Сертификаты должны располагаться по пути, указанному в конфиге.

Настройка SELinux

Если SELinux включён и в режиме enforcing, нужно выставить метки и позволить httpd доступ к необходимым ресурсам.

  1. Установите утилиты управления SELinux:
sudo dnf install policycoreutils-python-utils

Установка утилит SELinux — вывод терминала

  1. Настройте контексты безопасности для директорий ownCloud:
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/data(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/config(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps-external(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.htaccess'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.user.ini'

sudo restorecon -Rv '/var/www/owncloud/'
  1. Разрешите httpd взаимодействовать с сетью и службами:
sudo setsebool -P httpd_can_network_connect_db on
sudo setsebool -P httpd_unified on
sudo setsebool -P httpd_can_connect_ldap on
sudo setsebool -P httpd_can_network_connect on
sudo setsebool -P httpd_can_network_memcache on
sudo setsebool -P httpd_can_sendmail on
sudo setsebool -P httpd_use_cifs on
sudo setsebool -P httpd_use_fusefs on
sudo setsebool -P httpd_use_gpg on

Настройка SELinux — вывод терминала

Совет

  • Если вы используете внешние диски по CIFS/NFS, убедитесь, что контексты безопасности и права владельца установлены корректно.

Запуск установки ownCloud через веб-интерфейс

  1. Откройте браузер и перейдите на https://howtoforge.local/owncloud/

  2. На странице установки создайте администратора (имя пользователя и пароль), укажите путь данных (по умолчанию /var/www/owncloud/data) и выберите тип БД MySQL/MariaDB. Введите данные, созданные ранее.

  3. Нажмите Finish setup и дождитесь завершения.

Установка ownCloud через веб-интерфейс — скриншот

  1. Войдите в панель администратора.

Страница входа ownCloud — скриншот

  1. Создайте новую папку и загрузите файлы через интерфейс, чтобы проверить запись и чтение данных.

Панель ownCloud — скриншот

Загрузка файла и создание директории — скриншот

Настройка cron для фоновых задач ownCloud

ownCloud рекомендует использовать cron для фоновых задач.

  1. Включите фоновые задачи:
sudo -u apache /var/www/owncloud/occ background:cron
  1. Создайте cron для пользователя apache:
sudo crontab -u apache -e

Добавьте строку:

*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron

Сохраните файл.

Настройка cron — вывод терминала

  1. В панели администратора ownCloud проверьте “Проверки безопасности и установки”. Должно быть All checks passed.

Проверки безопасности ownCloud — скриншот

Безопасность и жесткая конфигурация

Рекомендации по усилению безопасности:

  • Используйте HSTS и сильную SSLCipherSuite (в примере указан набор шифров).
  • Включите двухфакторную аутентификацию и ограничьте длину сессий.
  • Настройте резервное копирование каталога данных и базы данных вне сервера ownCloud.
  • Ограничьте доступ к административным страницам по IP, если возможно.
  • Ограничьте доступ к файловой системе: права 750/770 для директорий ownCloud, владелец apache.
  • Настройте мониторинг: watch на состояние служб и алертинг при недоступности MariaDB или Redis.

Практика бэкапа

  • Ежедневный бэкап базы данных (mysqldump) и архивация каталога data.
  • Храните резервные копии на отдельном хранилище с версионированием.

Пример простого скрипта бэкапа (сниппет):

#!/bin/bash
BACKUP_DIR=/var/backups/owncloud
mkdir -p $BACKUP_DIR
mysqldump -u root -p'your_root_password' owncloud > $BACKUP_DIR/owncloud-$(date +%F).sql
tar -czf $BACKUP_DIR/owncloud-data-$(date +%F).tar.gz /var/www/owncloud/data

Важно

  • Никогда не храните пароли в скриптах в открытом виде. Используйте защищённое хранилище учётных данных или чтение из защищённого файла с ограниченными правами.

Альтернативные варианты развёртывания

  1. Nginx + PHP-FPM вместо Apache
  • Nginx обычно даёт более лёгкую нагрузку и гибкую настройку обратного прокси. Важные моменты: корректная настройка try_files, права доступа и сокет php-fpm.
  1. Контейнеризация (Docker, Podman)
  • Быстрый разворот, изоляция зависимостей. Нужно позаботиться о персистентности томов и резервном копировании.
  1. Использование внешней СУБД или managed DB
  • Managed DB упрощает операции и репликацию, но требует защищённого подключения и сетевых разрешений.

Когда этот подход не подходит

  • Если нужна крайне высокая отказоустойчивость и масштабирование на уровне нескольких дата-центров, готовая SaaS-альтернатива может быть предпочтительнее.

Отладка распространённых проблем

Проблема: Ошибки прав доступа к файлам

  • Проверьте владельца и права: sudo chown -R apache:apache /var/www/owncloud
  • Проверьте SELinux контексты restorecon -Rv /var/www/owncloud/

Проблема: 500 Internal Server Error

  • Посмотрите логи /var/log/httpd/error_log и /var/www/owncloud/data/owncloud.log
  • Проверьте версии PHP и установленные расширения

Проблема: “All checks passed” не появляется

  • Проверьте фоновые задачи и cron
  • Проверьте подключение к Redis и MariaDB из контейнера или процесса httpd

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

  • Веб-интерфейс ownCloud доступен по HTTPS без предупреждений.
  • Авторизация администратора работает, и можно зайти в панель управления.
  • Создание и загрузка файлов проходят, права и SELinux настроены корректно.
  • Cron выполняется каждые 15 минут и фоновые задачи обрабатываются.
  • Резервная копия базы данных и каталога данных успешно создаётся.

Чеклист для ролей

Системный администратор

  • Установил и настроил репозитории EPEL и REMI.
  • Настроил и запустил Redis, MariaDB и httpd.
  • Проверил метки SELinux и права на папки.
  • Настроил бэкап и cron.

Инженер безопасности

  • Проверил и настроил SSL/TLS, HSTS и Cipher Suite.
  • Настроил мониторинг и оповещения.
  • Настроил политики брандмауэра и ограничил доступ к базе данных.

DevOps-инженер

  • Автоматизировал развёртывание (Ansible/Playbook/Container).
  • Настроил CI/CD для обновлений и миграций.
  • Тестировал отказоустойчивость и восстановление из бэкапа.

Мини-методология обновления and отката

  1. Тестируйте обновление в staging-копии с теми же данными.
  2. Создайте бэкап БД и каталога данных перед обновлением.
  3. Выполняйте обновление в off-peak окно и отключите доступ пользователей.
  4. Если ошибка, верните БД и данные из бэкапа и восстановите конфигурации.

Короткий глоссарий

  • ownCloud — серверное приложение для синхронизации и обмена файлами.
  • LAMP — Linux, Apache, MariaDB/MySQL, PHP.
  • SELinux — механизм мандатного контроля доступа в Linux.
  • Redis — in-memory хранилище, часто используется как кэш.

Итог

Вы провели полный цикл установки ownCloud на Rocky Linux: подготовили репозитории, установили Redis, PHP 7.4 и расширения, настроили Apache и MariaDB, проверили целостность пакета, настроили SELinux и cron, а также рассмотрели практики безопасности и резервного копирования. После завершения вы получаете управляемую инсталляцию ownCloud, готовую к использованию и дальнейшей интеграции.

Рекомендуемые дальнейшие шаги

  • Автоматизируйте развёртывание через Ansible или Terraform.
  • Настройте HTTPS сертификаты с автоматическим обновлением (certbot).
  • Настройте мониторинг и метрики (Prometheus/Grafana) для служб ownCloud.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Herodotus — Android‑троян и защита
Кибербезопасность

Herodotus — Android‑троян и защита

Как включить новый Пуск в Windows 11
Windows

Как включить новый Пуск в Windows 11

Панель полей сводной таблицы в Excel — быстрый разбор
Excel

Панель полей сводной таблицы в Excel — быстрый разбор

Включение нового меню Пуск в Windows 11
Windows

Включение нового меню Пуск в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

Как посмотреть историю просмотров Reels в Instagram
Социальные сети

Как посмотреть историю просмотров Reels в Instagram