Установка 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. Замените на свои значения.
Установка основных зависимостей и репозиториев
- Установите репозиторий EPEL:
sudo dnf install epel-release
- Подготовьте репозиторий Redis (далее включим версию 6):
sudo dnf module reset redis
sudo dnf module enable redis:6Подтвердите вводом y.

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

- Запустите и включите Redis:
sudo systemctl enable --now redis
sudo systemctl status redis
Совет
- Redis используют для кеширования и ускорения работы. В продакшне рекомендовано настроить аутентификацию Redis и ограничения доступа по сети.
Установка PHP 7.4 и расширений
Примечание
- На момент написания ownCloud в стабильной ветке требует PHP 7.4. PHP 8 пока может быть несовместимым с некоторыми расширениями ownCloud.
- Установите 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
- Установите 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:
php --version
Пояснение
- php-apcu и php-redis используются для кэширования объектов и увеличения производительности.
Установка Apache httpd и настройка брандмауэра
- Установите пакеты httpd и SSL-модуль:
sudo dnf install httpd httpd-devel httpd-tools mod_ssl
- Запустите и включите httpd:
sudo systemctl enable --now httpd
sudo systemctl status httpd
- Откройте порты в 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
Проверка через браузер
- Создайте тестовый phpinfo файл и убедитесь, что httpd и PHP работают совместно:
cat <
EOF Откройте http://YOUR_SERVER_IP/info.php и проверьте страницу PHPINFO.

Установка и настройка MariaDB
ownCloud поддерживает несколько СУБД. Для продакшна рекомендуется MariaDB/MySQL или PostgreSQL.
- Установите MariaDB:
sudo dnf install mariadb-server
sudo systemctl enable --now mariadb
sudo systemctl status mariadb
- Защитите установку MariaDB:
sudo mysql_secure_installationОтвечайте согласно подсказкам, обычно:
- Не менять метод аутентификации на unix_socket — введите n.
- Задать пароль root — y и введите надёжный пароль.
- Запретить удалённый вход root — y.
- Удалить анонимных пользователей — y.
- Удалить тестовую базу — y.
- Перезагрузить привилегии — y.
- Создайте базу и пользователя для 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 и проверка целостности
- Перейдите в рабочую папку и скачайте пакет 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- Проверьте контрольную сумму:
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2Ожидаемый вывод для корректного архива: OK
- Распакуйте и назначьте владельца:
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
SSL сертификат
- Для получения сертификата от Let’s Encrypt используйте certbot или другой ACME-клиент. Сертификаты должны располагаться по пути, указанному в конфиге.
Настройка SELinux
Если SELinux включён и в режиме enforcing, нужно выставить метки и позволить httpd доступ к необходимым ресурсам.
- Установите утилиты управления SELinux:
sudo dnf install policycoreutils-python-utils
- Настройте контексты безопасности для директорий 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/'- Разрешите 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
Совет
- Если вы используете внешние диски по CIFS/NFS, убедитесь, что контексты безопасности и права владельца установлены корректно.
Запуск установки ownCloud через веб-интерфейс
Откройте браузер и перейдите на https://howtoforge.local/owncloud/
На странице установки создайте администратора (имя пользователя и пароль), укажите путь данных (по умолчанию /var/www/owncloud/data) и выберите тип БД MySQL/MariaDB. Введите данные, созданные ранее.
Нажмите Finish setup и дождитесь завершения.

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

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


Настройка cron для фоновых задач ownCloud
ownCloud рекомендует использовать cron для фоновых задач.
- Включите фоновые задачи:
sudo -u apache /var/www/owncloud/occ background:cron- Создайте cron для пользователя apache:
sudo crontab -u apache -eДобавьте строку:
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cronСохраните файл.

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

Безопасность и жесткая конфигурация
Рекомендации по усилению безопасности:
- Используйте 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Важно
- Никогда не храните пароли в скриптах в открытом виде. Используйте защищённое хранилище учётных данных или чтение из защищённого файла с ограниченными правами.
Альтернативные варианты развёртывания
- Nginx + PHP-FPM вместо Apache
- Nginx обычно даёт более лёгкую нагрузку и гибкую настройку обратного прокси. Важные моменты: корректная настройка try_files, права доступа и сокет php-fpm.
- Контейнеризация (Docker, Podman)
- Быстрый разворот, изоляция зависимостей. Нужно позаботиться о персистентности томов и резервном копировании.
- Использование внешней СУБД или 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 отката
- Тестируйте обновление в staging-копии с теми же данными.
- Создайте бэкап БД и каталога данных перед обновлением.
- Выполняйте обновление в off-peak окно и отключите доступ пользователей.
- Если ошибка, верните БД и данные из бэкапа и восстановите конфигурации.
Короткий глоссарий
- 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.
Похожие материалы
Herodotus — Android‑троян и защита
Как включить новый Пуск в Windows 11
Панель полей сводной таблицы в Excel — быстрый разбор
Включение нового меню Пуск в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить