Установка 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
Быстрый план действий
- Отключить SELinux и настроить firewalld.
- Установить и настроить nginx, MariaDB, php-fpm.
- Создать базу данных и сгенерировать SSL.
- Установить OwnCloud и правильно выставить права.
- Настроить виртуальный хост nginx.
- Перезапустить сервисы и проверить доступ через браузер.
Отключение SELinux и настройка firewalld
Чтобы отключить SELinux, откройте файл /etc/sysconfig/selinux и замените строку с режимом “enforcing” на “disabled”:
vim /etc/sysconfig/selinux
Откройте порты 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/

Создание базы данных и настройка 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;
Запомните имя БД, логин и пароль для шага конфигурации 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 доступен по 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 шага)
- Подготовить ОС, открыть порты и убедиться в доступе по SSH.
- Установить LEMP и базовые зависимости.
- Установить OwnCloud и настроить права.
- Проверить в браузере и настроить резервное копирование.
Короткий глоссарий
- 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
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента