Тариф успешно добавлен в корзину
В корзину
url image

Как установить и настроить Nextcloud на Ubuntu

Nextcloud — это открытая платформа для создания собственного облачного хранилища, позволяющая синхронизировать файлы, работать с документами, календарями и контактами под полным контролем владельца. Установить её можно практически на любой Linux-сервер.

Подготовка к установке

Конфигурация

Фактически, можно работать с системой без дополнительной настройки. Однако под нагрузкой могут начаться проблемы: зависания, ошибки синхронизации, сбои при совместной работе с файлами. Чтобы этого избежать, важно правильно настроить базовый стек. Мы рекомендуем такое решение:

  • nginx — для быстрой отдачи статики;
  • PHP-FPM — для обработки запросов;
  • MariaDB — в качестве сервера баз данных;
  • Redis — для кэширования и блокировок файлов, что предотвращает сбои при совместной работе;
  • SSL-сертификат — для корректного обращения к платформе по доменному имени;
  • фоновые задания — для их стабильного выполнения без вмешательства администратора.
Стек Nextcloud

Главное преимущество такой конфигурации в том, что каждый компонент выполняет отдельную задачу, например, 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 = 0

10G здесь является примером. Максимальный размер файла должен соответствовать вашей задаче и свободному месту на диске.

При этом одного 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/nextcloud

HTTPS-секция должна выглядеть примерно так:

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,
],
Настройка Redis

Перед этим проверьте, существует ли 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

После отправки формы Nextcloud создаст таблицы MariaDB и дополнит файл: /var/www/nextcloud/config/config.php

Выберите необходимые вам дополнительные приложения (хранилище файлов является функцией по умолчанию, поэтому в рекомендованных приложениях не отображается):

Настройка Nextcloud: выбор приложений


Для установки затем потребуется ввести пароль администратора столько раз, сколько приложений для установки вы выбрали. Если какое-то приложение забыли выбрать, всегда будет возможность его доустановить.

О начале работы с интерфейсом 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 (рекомендуется):

Nextcloud и 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 самостоятельно проверяет ряд параметров сервера и показывает найденные проблемы.

Nextcloud отдельно предупреждает о проблемах с отсутствующим HSTS и рекомендует проверять наличие заголовка через браузер или curl.

Проверяем HTTP/2

Для проверки введите:

curl -I --http2 https://nextcloud-example.fvds.ru

Дальнейшее обслуживание

Организация резервного копирования

После установки Nextcloud уже готов к работе, но сервер ещё не стоит считать полностью готовым к использованию.

Первостепенная задача после запуска — организация регулярного резервного копирования (собственно, как в любом веб-проекте).

Полный бэкап должен в обязательном порядке содержать три компонента:

  1. Директорию приложения /var/www/nextcloud и директорию файлов пользователей: /var/www/nextcloud-data.

  2. Базу данных MariaDB (дамп в .sql).

  3. Конфигурационные файлы /var/www/nextcloud/config.

Простое копирование папки приложения /var/www/nextcloud без базы данных и файлов пользователей не позволит восстановить систему. Кроме того, обязательно проводите тестовое восстановление из бэкапа, чтобы убедиться в его работоспособности.

Мониторинг свободного дискового пространства

Также особенно важно следить за свободным местом в разделе, где находится директория пользовательских файлов. В нашем случае это /var/www/nextcloud-data.

Пользовательские файлы будут постепенно увеличивать его размер, а временные файлы, версии документов и корзины могут занимать значительно больше места, чем ожидается.

Для удобства и защиты от переполнения диска, возможно, стоит добавить различные решения по автоматическому мониторингу дискового пространства (bash-скрипты в cron, ПО мониторинга).

Этот материал был полезен?

Скидка новым клиентам
Закажите сервер сегодня и получите скидку на первый месяц аренды!
Наш сайт использует cookies Вы можете отключить их в настройках браузера, но это может ограничить функционал. Оставаясь на сайте, вы соглашаетесь с использованием cookies.