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

Установка OwnCloud 8 на CentOS 7 с nginx и MariaDB

• 5 min read • Linux • Обновлено 19 Nov 2025
Установка OwnCloud 8 на CentOS 7 с nginx и MariaDB
Установка OwnCloud 8 на CentOS 7 с nginx и MariaDB

Введение

OwnCloud — серверное ПО для синхронизации данных и совместного доступа к файлам. Имеет удобный веб‑интерфейс и доступно под свободной лицензией. Клиенты есть для Windows, macOS, Linux, Android и iOS. Этот материал описывает установку OwnCloud 8 на CentOS 7 с nginx и MariaDB.

Важно: OwnCloud 8 устарел по сравнению с текущими релизами; этот гайд сохраняет шаги для воспроизведения в тестовой среде или для поддержки старых установок.

Требования

  • Сервер с CentOS 7
  • Права root или sudo
  • Доступ к порту 80/443

Быстрый план действий

  1. Отключить SELinux и настроить firewalld.
  2. Установить и настроить nginx, MariaDB, php-fpm.
  3. Создать базу данных и сгенерировать SSL.
  4. Установить OwnCloud и правильно выставить права.
  5. Настроить виртуальный хост nginx.
  6. Перезапустить сервисы и проверить доступ через браузер.

Отключение SELinux и настройка firewalld

Чтобы отключить SELinux, откройте файл /etc/sysconfig/selinux и замените строку с режимом “enforcing” на “disabled”:

vim /etc/sysconfig/selinux

Отключение SELinux на CentOS

Откройте порты HTTP и HTTPS в firewalld:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Важно: отключение SELinux снижает уровень безопасности. Если планируете продэкшн, настройте политику SELinux корректно вместо полного отключения.

Установка и настройка LEMP (nginx, MariaDB, PHP)

Ниже — основные шаги по подготовке стека:

Шаг 1 — включение EPEL

yum -y install epel-release

Шаг 2 — установка nginx, MariaDB и php-fpm

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx mariadb mariadb-server php-fpm php-cli php-gd php-mcrypt php-mysql php-pear php-xml bzip2 vim

Шаг 3 — запуск и начальная настройка MariaDB

systemctl start mariadb
mysql_secure_installation

При первом запуске mysql_secure_installation обычно просто нажимают Enter, а затем отвечают на запросы примерно так:

Change the root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Шаг 4 — настройка php-fpm

Отредактируйте /etc/php-fpm.d/www.conf:

vim /etc/php-fpm.d/www.conf

Убедитесь, что параметр listen установлен так:

listen = 127.0.0.1:9000

И права процесса указаны для user/group nginx:

user = nginx
group = nginx

Создайте каталог для сессий и выставьте владельца:

mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/

Запустите php-fpm:

systemctl start php-fpm

Шаг 5 — запуск nginx

systemctl start nginx

Теперь можно посетить веб‑сервер по IP, например: http://192.168.1.101/

Стартовая страница nginx на CentOS 7

Создание базы данных и настройка SSL

Шаг 1 — создание базы данных и пользователя

Войдите в MariaDB:

mysql -u root -p

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

create database owncloud_db;
create user ownclouduser@localhost identified by 'ownclouduser';
grant all privileges on owncloud_db.* to ownclouduser@localhost identified by 'ownclouduser';
flush privileges;

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

Запомните имя БД, логин и пароль для шага конфигурации OwnCloud.

Шаг 2 — создание самоподписанного SSL‑сертификата

Создайте каталог и сгенерируйте ключ и сертификат:

mkdir -p /etc/nginx/cert/
cd /etc/nginx/cert/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/owncloud.crt -keyout /etc/nginx/cert/owncloud.key

Измените права на файлы сертификата:

chmod 600 owncloud.crt
chmod 600 owncloud.key

Примечание: для публичного сервиса используйте сертификат от доверенного центра (Let’s Encrypt, commercial CA).

Установка OwnCloud

Скачайте исходники и разархивируйте:

yum -y install wget
cd /tmp/
wget https://download.owncloud.org/community/owncloud-8.0.0.tar.bz2

Распакуйте и переместите приложение в корень веб‑сервера:

tar -xjvf owncloud-8.0.0.tar.bz2
mv owncloud/ /usr/share/nginx/html/

Смените владельца на nginx и создайте каталог для данных:

cd /usr/share/nginx/html/
chown nginx:nginx -R owncloud/
mkdir -p owncloud/data/
chown nginx:nginx -R owncloud/data/

Конфигурация виртуального хоста для OwnCloud

Перейдите в каталог конфигураций nginx и создайте файл owncloud.conf:

cd /etc/nginx/conf.d/
mv default.conf default
vim owncloud.conf

Вставьте конфигурацию ниже (пример):

upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php5-fpm.sock;
}

server {
        listen 80;
        server_name 192.168.1.101; #YourIP or domain
        return 301 https://$server_name$request_uri;  # redirect all to use ssl
}


server {
        listen 443 ssl;
        server_name 192.168.1.101; #YourIP or domain

        #SSL Certificate you created
        ssl_certificate /etc/nginx/cert/owncloud.crt; 
        ssl_certificate_key /etc/nginx/cert/owncloud.key;

        # owncloud path
        root /usr/share/nginx/html/owncloud/;

        client_max_body_size 10G; # set max upload size
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # The following 2 rules are only needed with webfinger
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass php-handler;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }

}

После сохранения перезапустите сервисы:

systemctl restart nginx mariadb php-fpm

Включите автозапуск сервисов на старте системы:

systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb

Затем можно перезагрузить сервер:

reboot

Тестирование OwnCloud

Перейдите в браузере по адресу http://192.168.1.101 — вы будете перенаправлены на https://192.168.1.101. Создайте администратора и укажите параметры базы данных (имя БД, пользователь, пароль). После этого нажмите кнопку Finish Setup для завершения установки.

Процесс настройки OwnCloud в браузере

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

  • Веб‑интерфейс OwnCloud доступен по HTTPS без ошибок 500/502.
  • Возможность входа с созданной учётной записью администратора.
  • Возможность загружать и скачивать файлы через веб‑интерфейс.
  • Сервис nginx, php-fpm и mariadb запущены и настроены на автозагрузку.

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

Важно: для продакшен‑сервера используйте сертификат от CA, настройте бэкапы и проверяйте права на директории.

Короткий чек‑лист по безопасности:

  • Используйте TLS от доверенного центра (Let’s Encrypt).
  • Ограничьте доступ к базе данных по IP.
  • Настройте регулярные бэкапы каталога owncloud/data и базы данных.
  • Отключайте ненужные PHP‑модули.
  • Включите SELinux корректно или используйте AppArmor (если доступно).

Отладочные команды:

  • Просмотреть логи nginx: journalctl -u nginx или /var/log/nginx/error.log
  • Логи php-fpm: journalctl -u php-fpm или /var/log/php-fpm/www-error.log
  • Логи MariaDB: /var/log/mariadb/mariadb.log

Когда этот подход не подходит (контрпример)

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

Альтернативные подходы

  • Использовать Apache вместо nginx (многие официальные инструкции ориентированы на Apache).
  • Применять готовые Docker‑контейнеры OwnCloud для упрощения развертывания и изоляции.
  • Рассмотреть Nextcloud — форк OwnCloud с более активной экосистемой.

Роли и чек‑листы

Admin (что должен сделать администратор):

  • Установить и обновить пакеты.
  • Настроить бэкапы и мониторинг.
  • Управлять учётными записями пользователей.

Sysadmin (операционный):

  • Настроить файрвол.
  • Поддерживать сертификаты TLS.
  • Решать проблемы с правами файлов.

Пользователь (конечный):

  • Настроить клиент синхронизации.
  • Загружать и делиться файлами через веб‑интерфейс.

Мини‑методология быстрой установки (4 шага)

  1. Подготовить ОС, открыть порты и убедиться в доступе по SSH.
  2. Установить LEMP и базовые зависимости.
  3. Установить OwnCloud и настроить права.
  4. Проверить в браузере и настроить резервное копирование.

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

  • nginx — легковесный веб‑сервер и обратный прокси.
  • php-fpm — FastCGI‑процесс менеджер для PHP.
  • MariaDB — форк MySQL, СУБД.
  • SSL/TLS — протоколы безопасности для HTTPS.

Заключение

OwnCloud 8 можно развернуть на CentOS 7 с nginx и MariaDB за несколько шагов. Следуйте инструкциям по настройке PHP‑FPM и правам на файлы, используйте TLS для защиты трафика и настраивайте регулярные бэкапы. Для продакшн‑окружения рассмотрите использование актуальной версии OwnCloud или Nextcloud.

Полезные ссылки

  • Owncloud
  • CentOS
  • Nginx
  • MariaDB
  • PHP
Поделиться: 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 быстро