Nextcloud — это открытая платформа для создания собственного облачного хранилища, позволяющая синхронизировать файлы, работать с документами, календарями и контактами под полным контролем владельца. Установить её можно практически на любой Linux-сервер.
Подготовка к установке
Конфигурация
Фактически, можно работать с системой без дополнительной настройки. Однако под нагрузкой могут начаться проблемы: зависания, ошибки синхронизации, сбои при совместной работе с файлами. Чтобы этого избежать, важно правильно настроить базовый стек. Мы рекомендуем такое решение:
- nginx — для быстрой отдачи статики;
- PHP-FPM — для обработки запросов;
- MariaDB — в качестве сервера баз данных;
- Redis — для кэширования и блокировок файлов, что предотвращает сбои при совместной работе;
- SSL-сертификат — для корректного обращения к платформе по доменному имени;
- фоновые задания — для их стабильного выполнения без вмешательства администратора.

Главное преимущество такой конфигурации в том, что каждый компонент выполняет отдельную задачу, например, Nginx передаёт запросы в PHP-FPM через FastCGI, что соответствует официальной схеме Nginx + PHP-FPM для Nextcloud и будет работать более производительно, чем на Apache с модулем PHP или даже на связке Nginx+Apache.
Что требуется для установки
Перед началом нужен сервер с Ubuntu 24.04 или Ubuntu 26.04. Также потребуется доменное имя, у нас это будет nextcloud-example.fvds.ru
DNS-запись A должна указывать на публичный IPv4-адрес сервера.
Проверить DNS можно:
dig +short nextcloud-example.fvds.ruВ результате должен отобразиться адрес сервера.
Для стандартной установки также должны быть доступны порты 80 и 443, разрешим их в файрволе командой:
ufw allow 80,443/tcp Обновление системы
Начнём с обновления списка пакетов:
apt updateЗатем установим доступные обновления:
apt upgrade -yИспользуйте команду осторожно, если на сервере уже работают сторонние сервисы, чтобы случайно не обновить их до несовместимых версий.
Установка необходимого ПО для Nextcloud
Устанавливаем nginx, PHP-FPM, MariaDB и Redis
Возможны разные конфигурации веб-сервера. Nextcloud рекомендует использовать PHP-FPM при работе с nginx, а Redis используется для локального кэширования и блокировок файлов. Установим основные компоненты:
apt install -y \
nginx \
mariadb-server \
redis-server \
php-fpm \
php-cli \
php-gd \
php-mysql \
php-curl \
php-mbstring \
php-intl \
php-gmp \
php-xml \
php-imagick \
php-zip \
php-bcmath \
php-apcu \
php-redis \
unzip \
bzip2 \
curl \
wgetВ списке пакетов сознательно не указывается конкретный номер версии PHP (например, php8.3-fpm). Ubuntu 24.04 и Ubuntu 26.04 поставляют разный базовый PHP. Такой подход позволяет обойтись системными репозиториями Ubuntu без подключения сторонних PPA, гарантируя стабильность обновлений, а команда тем самым будет одинаково справедлива для обеих версий Ubuntu.
Проверим версию PHP:
php -vТакже проверим PHP-FPM:
systemctl status php*-fpmВместо * укажите версию, которую проверили шагом ранее (например, в Ubuntu 24 должна быть 8.3).
И Redis:
redis-cli pingВ ответ должно прийти подтверждение, что сервис Redis запущен и корректно отвечает на запросы:
PONGАвтозапуск и проверка работоспособности сервисов
Включим автоматический запуск Nginx, MariaDB, Redis и PHP-FPM:
systemctl enable --now nginx
systemctl enable --now mariadb
systemctl enable --now redis-server
systemctl enable --now php*-fpmВместо * укажите версию, которую проверили шагом ранее (например, в Ubuntu 24 должна быть 8.3).
Проверить состояние можно:
systemctl --type=service --state=running | grep -E 'nginx|mariadb|redis|php'
Настройка базы данных для Nextcloud
Nextcloud будет хранить в MariaDB информацию о пользователях, файлах, настройках приложений и другие данные.
Запустим MariaDB:
mysqlСоздадим отдельную базу данных:
CREATE DATABASE nextcloud
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;Создадим пользователя:
CREATE USER 'nextcloud'@'localhost'
IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';Выдадим ему права:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';Применим изменения:
FLUSH PRIVILEGES;Для выхода введите:
EXIT;Вместо указанного пароля сгенерируйте и укажите случайный пароль, который будет трудно подобрать.
Проверяем необходимые параметры СУБД
Для MariaDB Nextcloud требует InnoDB и режим изоляции транзакций READ COMMITTED. Эти параметры необходимо проверить до начала использования Nextcloud.
Проверить текущий режим можно командой:
mysql -e "SELECT @@tx_isolation;"Если сервер показывает другой режим, его следует изменить в конфигурации MariaDB.
Создадим отдельный конфигурационный файл:
nano /etc/mysql/mariadb.conf.d/60-nextcloud.cnfДобавим:
[mysqld]
transaction_isolation = READ-COMMITTEDПерезапустим MariaDB:
systemctl restart mariadbИ проверим:
mysql -e "SELECT @@tx_isolation;"Должно получиться:
READ-COMMITTEDЗагрузка и первичная подготовка Nextcloud
Загружаем дистрибутив
Перейдём во временный каталог:
cd /tmpОфициальный сервер загрузок Nextcloud содержит актуальный архив latest.tar.bz2; при этом отдельные стабильные ветки также доступны в каталоге релизов.
В данной инструкции будем скачивать последнюю версию — latest.tar.bz2. Можно скачать конкретную версию Nextcloud, на момент подготовки инструкции последней была версия 35.0.1
Скачиваем последний доступный стабильный архив:
wget https://download.nextcloud.com/server/releases/latest.tar.bz2Распаковываем:
tar -xjf latest.tar.bz2Перемещаем Nextcloud:
mv nextcloud /var/www/nextcloudСоздаём каталог данных
Файлы пользователей необходимо изолировать от основного каталога веб-сервера (/var/www/nextcloud). Это предотвращает прямой доступ к пользовательским данным через веб-интерфейс в случае ошибок в конфигурации Nginx.
Создадим отдельный каталог:
mkdir -p /var/www/nextcloud-dataНазначим владельца:
chown -R www-data:www-data /var/www/nextcloud-dataВ результате получаем /var/www/nextcloud для приложения и /var/www/nextcloud-data для пользовательских данных.
Такой подход дополнительно отделяет файлы пользователей от файлов самого приложения.
Настраиваем права
Перед созданием конфигурации передадим каталог Nextcloud пользователю веб-сервера:
chown -R www-data:www-data /var/www/nextcloudПрава на каталоги:
find /var/www/nextcloud -type d -exec chmod 750 {} \;Права на файлы:
find /var/www/nextcloud -type f -exec chmod 640 {} \;После установки Nextcloud сам создаст необходимые файлы конфигурации и приведёт права в соответствие с текущим состоянием системы.
Настройка веб-сервера и PHP
Определяем сокет PHP-FPM
Nginx должен знать, куда передавать PHP-запросы.
Посмотрим доступные сокеты:
ls -la /run/php/В Ubuntu 24 вывод будет следующим:
php8.3-fpm.sockВ Ubuntu 26:
php8.5-fpm.sockНе копируйте это имя — используйте сокет, который действительно существует на сервере. Чтобы определить его автоматически введите:
find /run/php -maxdepth 1 -name 'php*-fpm.sock' -printДалее будем обозначать его как /run/php/phpX.Y-fpm.sock.
X.Y необходимо заменить на установленную версию.
Настраиваем PHP
Допустим, сервер использует PHP 8.5. Версию именно вашего сервера мы узнавали ранее, используйте именно ту, которая установлена в вашей системе.
Конфигурация PHP-FPM находится здесь:
/etc/php/8.5/fpm/php.iniОткрываем её:
nano /etc/php/8.5/fpm/php.iniНастроим ключевые параметры лимитов и таймаутов, чтобы Nextcloud мог обрабатывать крупные файлы и не прерывал операции загрузки:
memory_limit = 512M
upload_max_filesize = 10G
post_max_size = 10G
max_execution_time = 3600
max_input_time = 3600
output_buffering = 010G здесь является примером. Максимальный размер файла должен соответствовать вашей задаче и свободному месту на диске.
При этом одного upload_max_filesize недостаточно. Nginx также имеет собственное ограничение на размер тела запроса, поэтому его необходимо настроить отдельно (настроим позднее в разделе о Nginx).
Перезапустим PHP-FPM:
systemctl restart php8.5-fpm.serviceЗамените 8.5 на установленную версию в вашем случае.
Nextcloud рекомендует минимум 512 MB памяти на PHP-процесс для нормальной работы, хотя реальное потребление зависит от количества пользователей, приложений и нагрузки.
Настраиваем PHP-FPM
По умолчанию PHP-FPM рассчитан на минимальное потребление ресурсов и использует параметр pm.max_children = 5. Для Nextcloud этого недостаточно: при одновременной синхронизации нескольких устройств запросы встанут в очередь, вызывая таймауты. Увеличим количество воркеров.
Откройте пул:
nano /etc/php/8.5/fpm/pool.d/www.confДля базового сервера с 2–4 GB RAM можем ориентироваться на следующие значения:
pm = dynamic
pm.max_children = 16
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 8Эти значения нельзя считать универсальными.
Например, если на сервере 2 GB RAM, 16 PHP-процессов могут оказаться слишком большим количеством. Если памяти 8–16 GB и пользователей значительно больше, наоборот, может потребоваться увеличение.
После изменения, перезапускаем службу:
systemctl restart php8.5-fpmНастраиваем OPcache
OPcache устанавливается вместе с PHP в Ubuntu, но его параметры можно проверить:
php -i | grep opcacheКонфигурация обычно находится в /etc/php/8.5/fpm/conf.d/10-opcache.ini.
OPcache позволяет PHP снизить количество операций при обработке запросов. Зададим стандартно рекомендуемые параметры (как и в случае с php-fpm, их нельзя считать универсальными, но можно от них отталкиваться):
opcache.enable=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=60После изменения:
systemctl restart php8.5-fpmНастраиваем nginx
Удалим стандартную конфигурацию сайта:
rm -f /etc/nginx/sites-enabled/defaultСоздадим конфигурацию Nextcloud:
nano /etc/nginx/sites-available/nextcloudПока сертификата нет, создадим HTTP-конфигурацию:
server {
listen 80 default_server;
server_name nextcloud-example.fvds.ru www.nextcloud-example.fvds.ru;
root /var/www/nextcloud;
index index.php index.html /index.php$request_uri;
client_max_body_size 10G;
client_body_timeout 3600s;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location ^~ /.well-known {
return 301 /index.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS off;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
fastcgi_request_buffering on;
fastcgi_intercept_errors on;
}
location ~ \.(?:css|js|mjs|svg|gif|ico|jpg|jpeg|png|webp|wasm|tflite|map|ogg|flac)$ {
try_files $uri /index.php$request_uri;
expires 6M;
access_log off;
add_header Cache-Control "public, max-age=15778463, immutable";
}
location ~ \.(?:woff2?|eot|ttf|otf)$ {
try_files $uri /index.php$request_uri;
expires 7d;
access_log off;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) {
return 404;
}
location ~ ^/(?:composer|package)(?:\.json|\.lock)$ {
return 404;
}
location ~ ^/(?:core|status)/.*\.php(?:$|/) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
}
location ~ /\.(?!well-known).* {
deny all;
}
}Замените php8.5-fpm.sock на имя своего сокета PHP-FPM, а nextcloud-example.fvds.ru — на свой домен.
В конфигурации выше client_max_body_size 10G разрешает nginx принимать большие загрузки. Это значение должно соответствовать upload_max_filesize и post_max_size PHP.
Официальная конфигурация Nextcloud также предусматривает увеличение client_max_body_size, client_body_timeout и настройку FastCGI для PHP-FPM.
Нельзя просто передавать любой URL с расширением .php в PHP-FPM. Правилоtry_files $fastcgi_script_name =404 проверяет существование PHP-файла перед передачей запроса интерпретатору. Эта директива предотвращает выполнение несуществующих PHP-скриптов и защищает от уязвимостей, связанных с загрузкой вредоносных файлов, т.е. является одним из стандартных и рекомендуемых параметров, в том числе в документации Nextcloud.
Включаем сайт
Создадим символьную ссылку:
ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloudПроверим конфигурацию:
nginx -tЕсли ошибок нет:
syntax is ok
test is successfulПерезапускаем Nginx:
systemctl reload nginxТеперь можно открыть http://nextcloud-example.fvds.ru.
Настройка безопасности и SSL-сертификатов
Получаем сертификат Let's Encrypt
Установим Certbot и его модуль для nginx:
apt install -y certbot python3-certbot-nginxПакет python3-certbot-nginx присутствует в стандартных репозиториях Ubuntu 24.04 и 26.04.
Получим сертификат:
certbot --nginx -d nextcloud-example.fvds.ru -d www.nextcloud-example.fvds.ruВместо домена nextcloud-example.fvds.ru укажите свой.
Certbot обнаружит виртуальный хост Nginx и настроит HTTPS.
Появится вопрос о email (укажите email, который ранее не использовали в Let’s Encrypt, например, несуществующий ящик вашего домена), затем подтвердите согласие с правилами использования (выбрать Yes), вопрос о передаче информации для развития сервиса (выбрать вариант на ваше усмотрение).
При запросе о перенаправлении HTTP на HTTPS выберите вариант, который включает redirect.
После этого http://nextcloud-example.fvds.ru будет перенаправляться на https://nextcloud-example.fvds.ru.
Certbot поддерживает автоматическую настройку nginx и автоматическое продление сертификатов.
Проверим:
certbot renew --dry-runЕсли тест прошёл успешно, появится сообщение The simulation succeeded или Congratulations, all simulated renewals succeeded.
Настраиваем конфигурацию HTTPS
После получения сертификата откройте:
nano /etc/nginx/sites-available/nextcloudHTTPS-секция должна выглядеть примерно так:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name nextcloud-example.fvds.ru www.nextcloud-example.fvds.ru;
root /var/www/nextcloud;
index index.php index.html /index.php$request_uri;
ssl_certificate /etc/letsencrypt/live/nextcloud-example.fvds.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nextcloud-example.fvds.ru/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
client_max_body_size 10G;
client_body_timeout 3600s;
server_tokens off;
add_header Strict-Transport-Security "max-age=15552000" always;
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location ^~ /.well-known {
return 301 /index.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
fastcgi_request_buffering on;
fastcgi_intercept_errors on;
}
location ~ \.(?:css|js|mjs|svg|gif|ico|jpg|jpeg|png|webp|wasm|tflite|map|ogg|flac)$ {
try_files $uri /index.php$request_uri;
expires 6M;
access_log off;
add_header Cache-Control "public, max-age=15778463, immutable";
}
location ~ \.(?:woff2?|eot|ttf|otf)$ {
try_files $uri /index.php$request_uri;
expires 7d;
access_log off;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) {
return 404;
}
location ~ ^/(?:composer|package)(?:\.json|\.lock)$ {
return 404;
}
location ~ ^/(?:core|status)/.*\.php(?:$|/) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
}
location ~ /\.(?!well-known).* {
deny all;
}
}Здесь используется HSTS:
add_header Strict-Transport-Security "max-age=15552000" always;Такой параметр задает время жизни заголовка (в данном случае — 6 месяцев) и позволяет пройти проверку безопасности в панели администратора Nextcloud, защищая пользователей от атак с понижением протокола (SSL stripping).
HTTP/2
Nextcloud рекомендует HTTP/2 для HTTPS-соединений, поскольку он уменьшает нагрузку при большом количестве запросов, характерных для веб-интерфейса Nextcloud.
Для HTTP/2 достаточно добавить к HTTPS-серверу:
listen 443 ssl http2;Однако в современных версиях Nginx директива http2 в listen постепенно заменяется отдельной директивой.
Если установленный Nginx поддерживает современный синтаксис, предпочтительнее:
listen 443 ssl;
http2 on;HTTP/3
Nextcloud также рекомендует включить HTTP/3, который за счет работы поверх протокола UDP/QUIC ещё быстрее устанавливает соединение и эффективнее справляется с потерей пакетов на нестабильных сетях, что актуально для мобильных клиентов Nextcloud.
Однако из-за особенностей фильтрации трафика со стороны государственных регуляторов, включение HTTP/3 в рунете может привести к частичной недоступности для некоторых пользователей. Также нужно, чтобы установленный nginx был собран с поддержкой HTTP/3 (http_v3_module), который обычно не входит в базовую установку nginx. Поэтому рассматривать подключение HTTP/3 в рамках данной инструкции не будем.
Проверяем nginx
После изменения конфигурации:
nginx -tЕсли проверка успешна:
systemctl reload nginxПроверим HTTPS:
curl -I https://nextcloud-example.fvds.ruВ ответе должен присутствовать HTTP/2 200или другой корректный HTTP-ответ Nextcloud.
Проверим HSTS:
curl -I https://nextcloud-example.fvds.ru | grep -i strictОжидаемый заголовок Strict-Transport-Security: max-age=15552000.
Финализация установки и оптимизация
Настраиваем Redis
Redis будет использоваться в Nextcloud для кэширования и блокировки файлов.
Откройте конфигурацию:
nano /var/www/nextcloud/config/config.phpДобавьте в массив $CONFIG (как на скриншоте ниже):
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '/var/run/redis/redis-server.sock',
'port' => 0,
],
Перед этим проверьте, существует ли Unix-сокет:
ls -l /var/run/redis/redis-server.sockЕсли сокета нет, в настройках необходимо поменять на TCP-сокет:
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
],Устанавливаем Nextcloud (веб-интерфейс)
Теперь можно открыть https://nextcloud-example.fvds.ru (вместо домена из примера укажите свой). В форме установки укажите имя администратора, например admin, пароль администратора (отдельный и сложный).
Укажите значения:
Каталог с данными: /var/www/nextcloud-data.
Пользователь базы данных: nextcloud.
Пароль базы данных: пароль, который был задан при создании пользователя MariaDB.
Имя базы данных: nextcloud.
Хост базы данных: localhost.

После отправки формы Nextcloud создаст таблицы MariaDB и дополнит файл: /var/www/nextcloud/config/config.php
Выберите необходимые вам дополнительные приложения (хранилище файлов является функцией по умолчанию, поэтому в рекомендованных приложениях не отображается):

Для установки затем потребуется ввести пароль администратора столько раз, сколько приложений для установки вы выбрали. Если какое-то приложение забыли выбрать, всегда будет возможность его доустановить.
О начале работы с интерфейсом Nextcloud мы рассказывали в этой статье.
Настраиваем домен (домены)
После установки проверьте:
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domainsЕсли домен отсутствует, добавьте его:
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 \
--value=nextcloud-example.fvds.ruПроверить:
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domainsУспешный вывод:
nextcloud-example.fvds.ruНастраиваем URL и HTTPS
Чтобы Nextcloud всегда считал HTTPS основным протоколом:
sudo -u www-data php /var/www/nextcloud/occ config:system:set overwriteprotocol \
--value=httpsУказываем основной URL:
sudo -u www-data php /var/www/nextcloud/occ config:system:set overwrite.cli.url \
--value=https://nextcloud-example.fvds.ruПри необходимости можно также явно указать hostname:
sudo -u www-data php /var/www/nextcloud/occ config:system:set overwritehost \
--value=nextcloud-example.fvds.ruНастраиваем фоновые задания через cron
Nextcloud регулярно выполняет фоновые операции. Можно остановить выбор на стандартном AJAX, который запускается прямо в браузере при посещении страниц, но под нагрузкой или при отсутствии активных пользователей могут возникнуть сбои, поэтому переведем фоновые задания в планировщик cron.
Создадим cron для пользователя www-data:
sudo -u www-data crontab -eДобавьте:
*/5 * * * * php -f /var/www/nextcloud/cron.phpТеперь cron.php будет запускаться каждые пять минут.
В панели Nextcloud кликните по значку администратора и выберите Параметры сервера:

Затем в разделе Administration выберите пункт Основные параметры и поставьте галочку у пункта Cron (рекомендуется):

Если в сron вы добавляли заранее и более 5 минут назад, т.е. задание уже запускалось, в случае его успешного выполнения в данном разделе будет зеленая плашка с сообщением, что задание было запущено.
Проверяем установку через occ
Команда sudo -u www-data php /var/www/nextcloud/occ status должна показать состояние экземпляра Nextcloud.
Например:
- installed: true
- version: ...
- versionstring: ...
- maintenance: falseМожно также выполнить:
sudo -u www-data php /var/www/nextcloud/occ maintenance:repairНо запускать maintenance:repair без причины после каждой установки не требуется. Если установка завершилась нормально, достаточно проверить состояние.
Проверяем конфигурацию Nextcloud
Проверяем список системных параметров:
sudo -u www-data php /var/www/nextcloud/occ config:list systemНе публикуйте полный вывод этой команды в открытом доступе.
В панели Nextcloud также откройте Параметры сервера — Administration — Общие сведения:

Nextcloud самостоятельно проверяет ряд параметров сервера и показывает найденные проблемы.
Nextcloud отдельно предупреждает о проблемах с отсутствующим HSTS и рекомендует проверять наличие заголовка через браузер или curl.
Проверяем HTTP/2
Для проверки введите:
curl -I --http2 https://nextcloud-example.fvds.ruДальнейшее обслуживание
Организация резервного копирования
После установки Nextcloud уже готов к работе, но сервер ещё не стоит считать полностью готовым к использованию.
Первостепенная задача после запуска — организация регулярного резервного копирования (собственно, как в любом веб-проекте).
Полный бэкап должен в обязательном порядке содержать три компонента:
Директорию приложения
/var/www/nextcloudи директорию файлов пользователей:/var/www/nextcloud-data.Базу данных MariaDB (дамп в .sql).
Конфигурационные файлы
/var/www/nextcloud/config.
Простое копирование папки приложения /var/www/nextcloud без базы данных и файлов пользователей не позволит восстановить систему. Кроме того, обязательно проводите тестовое восстановление из бэкапа, чтобы убедиться в его работоспособности.
Мониторинг свободного дискового пространства
Также особенно важно следить за свободным местом в разделе, где находится директория пользовательских файлов. В нашем случае это /var/www/nextcloud-data.
Пользовательские файлы будут постепенно увеличивать его размер, а временные файлы, версии документов и корзины могут занимать значительно больше места, чем ожидается.
Для удобства и защиты от переполнения диска, возможно, стоит добавить различные решения по автоматическому мониторингу дискового пространства (bash-скрипты в cron, ПО мониторинга).