🐹 CentOS 7: Установка и настройка облачного хранилища Nextcloud.

Содержание:

1. Описание облачного хранилища.

1.1. Что такое Nextcloud.
1.2. Особенности.

2. Предварительная подготовка сервера.

2.1. Установка и настройка Nginx.
2.2. Установка и настройка php-fpm.sock.

2.2.1. Настройка системны переменныx php-fpm.
2.2.2. Настройка лучшей производительности php-fpm.

2.3. Установка и настройка библиотек PHP ImageMagick.
2.4. Установка и настройка библиотек ffmpeg.

3. Установка и настройка Let’s Encrypt.
4. Установка и настройка системы баз данных MariaDB.
5. Ротация логов web-сервера Nginx.
6. Первое подключение к web-интерфейсу.
7. Установка и настройка Redis.
8. Самодиагностика после установки.
9. Оптимизация Nextcloud.

9.1. Перенос каталога data для защиты данных.
9.2. Изменяем лимит для загрузки файлов.
9.3. Создание миниатюр.
9.4. Подключение почтового ящика.
9.5. Изменение места хранения и ротация log-файла.
9.6. Настройка cron для фоновых заданий.
9.7. Задание для службы systemd.
9.8. Настройка очистки удалённых файлов (корзина).

10. Работа с офисными документами онлайн.
11. Подключение каталога пользователя сетевым диском по протоколу WebDAV.
12. Итоговый файл конфигурации.
13. Оригиналы источников информации.


На чем было собрано:

  1. CentOS 7 Linux x86_64 release 7.8.2003.
  2. Nextcloud 20.
  3. Nginx 1.19.2.
  4. PHP Version 7.4.10.
  5. MariaDB Server version 10.5.5.
  6. Ноутбук Emachines G525.

1. Описание облачного хранилища.

1.1. Что такое Nextcloud.

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

В отличие от проприетарных сервисов, таких как Dropbox, открытая архитектура Nextcloud позволяет добавлять функциональность на сервер в виде приложений и позволяет пользователям полностью контролировать свои данные.

Скачать Nextcloud можно на официальном сайте разработчиков.

Ссылка на сайт разработчиков: nextcloud.com.

1.2. Особенности.

Файлы Nextcloud хранятся на вашем сервере и могут быть доступны через WebDAV, если это необходимо. Пользовательские файлы зашифровываются во время транзита (необходимо включить шифрование). Nextcloud поддерживает клиентские программы на Windows, OS X, и Linux для синхронизации между сервером и клиентом.

Пользователи Nextcloud могут управлять календарями (CalDAV), контактами (CardDAV), планировать задачи изнутри платформы.

Nextcloud позволяет управлять пользователями и группами (с помощью OpenID или LDAP). Контент может использоваться совместно, определяя грамотные разрешения на чтение и запись между пользователями и группами. Кроме того, пользователи Nextcloud могут делится файлами через URLs.

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

2. Предварительная подготовка сервера.

2.1. Установка и настройка Nginx.

Установку Nginx будем проводить по инструкции «CentOS 7: Настройка web-сервера Nginx и выход в Интернет со своим доменным именем».

Настраивать облачное хранилище Nextcloud будем с учетом наличия других виртуальных хостов на данном сервере под управлением Nginx.

Создадим виртуальный хост и подготовим директории для размещения исходников Nextcloud.

# mkdir -p /files/storage/www

Создадим конфиг Nginx для Nextcloud с учетом https, который мы настроим позже.

Конфигурация собрана на основе рекомендаций из официальной документации конкретно для web-сервера Nginx.

Ссылка на официальную документацию и конфигурацию Nextcloud: https://docs.nextcloud.com.

Создадим файл конфигурации для нашего облачного хранилища, чтобы можно было обращаться к нему по доменному имени:

# mcedit /etc/nginx/conf.d/nextcloud.conf

Копируем в файл конфигурации данный текст и по смыслу меняем его на свои параметры:

nextcloud.conf
upstream php-handler {
    server unix:/var/run/php-fpm/php-fpm.sock;
}
server {
    listen 80;
    listen [::]:80;
    server_name cloud.example.com;
    # enforce https
    return 301 https://$server_name:443$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name cloud.example.com;

    ssl_certificate /etc/letsencrypt/live/cloud.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cloud.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/cloud.example.com/fullchain.pem;
 
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    add_header Referrer-Policy no-referrer;

    # Remove X-Powered-By, which is an information leak
    fastcgi_hide_header X-Powered-By;

    # Path to the root of your installation
    root /var/www/nextcloud;

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

    location = /.well-known/carddav {
      return 301 $scheme://$host:$server_port/remote.php/dav;
    }
    location = /.well-known/caldav {
      return 301 $scheme://$host:$server_port/remote.php/dav;
    }

    # set max upload size
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;

    # Enable gzip but do not remove ETag headers
    gzip on;
    gzip_vary on;
    gzip_comp_level 4;
    gzip_min_length 256;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

    location / {
        rewrite ^ /index.php;
    }

    location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
        deny all;
    }
    location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
        deny all;
    }

    location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
        fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
        set $path_info $fastcgi_path_info;
        try_files $fastcgi_script_name =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param HTTPS on;
        # Avoid sending the security headers twice
        fastcgi_param modHeadersAvailable true;
        # Enable pretty urls
        fastcgi_param front_controller_active true;
        fastcgi_pass php-handler;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }

    location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
        try_files $uri/ =404;
        index index.php;
    }

    location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
        try_files $uri /index.php$request_uri;
        add_header Cache-Control "public, max-age=15778463";
        add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
        add_header X-Frame-Options SAMEORIGIN;
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        add_header Referrer-Policy no-referrer;

        # Optional: Don't log access to assets
        access_log off;
    }

    location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
        try_files $uri /index.php$request_uri;
        # Optional: Don't log access to other assets
        access_log off;
    }
}

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

Нужно доустановить остальные компоненты Nextcloud.

2.2. Установка и настройка php-fpm.sock.

Fastcgi Process Managerphp-fpm менеджер процессов, используется в связке с nginx + php.

Ссылка: «CentOS 7: Установка PHP 7.4 и настройка php-fpm.sock — Fastcgi Process Manager для Nginx».

# установка php

Дополнительно установим специальные версии php, которые потребуются в работе Nextcloud:

# yum -y install php-intl

# yum -y install php-bcmath

# yum -y install php-gmp

Восстанавливаем, после установки, необходимые права для работы Nginx:

# chown -R nginx:nginx /var/lib/php/session
# chmod -R 755 /var/lib/php/session

2.2.1. Настройка системны переменных php-fpm.

Когда вы используете php-fpm, системные переменные среды, такие как PATH, TMP или другие, не заполняются автоматически так же, как при использовании php-cli. Вызов функции PHP, такой как getenv('PATH'); может возвращать пустой результат. Поэтому вам может потребоваться вручную настроить переменные среды в файле конфигурации php-fpm.

Создадим копию файла php.ini конфигурации PHP:

# cp /etc/php.ini /etc/php.ini.original

открываем файл www.conf по адресу /etc/php-fpm.d/www.conf:

# mcedit /etc/php-fpm.d/www.conf

Ищем такие строки:

;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

Раскомментируем их удалив в начале каждой строки ‘;‘.

Сохраним файл с изменениями.

Не забываем перезапустить php-fpm:

# systemctl restart php-fpm

2.2.2. Настройка лучшей производительности php-fpm.

Создадим копию файла php.ini конфигурации PHP:

# cp /etc/php.ini /etc/php.ini.original

Откроем в редакторе и модифицируем следующие строки:

# mcedit /etc/php.ini

Параметры:

  • max_execution_time — время, в течении которого скрипт должен полностью завершить своё исполнение. Для отмены ограничений можно присвоить 0. Измеряется в секундах.
  • max_input_time — время, в течении которого скрипт, должен получить и обработать все данные из POST и GET запросов. Измеряется в секундах.
  • memory_limit — ограничение на выделяемую для исполнения одного скрипта память. Для отмены ограничений, поставьте -1. Должен быть больше post_max_size. Измеряется в Мб.
  • post_max_size — максимальный размер отправляемого через POST-запрос файла, значение параметра post_max_size должно быть равным или большим значению параметра upload_max_filesize.
  • upload_max_filesize — максимальный размер закачиваемого файла.
  • max_file_uploads — максимальное количество одновременных загрузок. Ставьте столько, сколько устройств будут присылать информацию в систему.

Обязательно перезапустите соответствующую службу.

# systemctl restart nginx

# systemctl restart mariadb

# systemctl restart php-fpm

2.3. Установка и настройка библиотек PHP ImageMagick.

ImageMagick — набор программ (консольных утилит) для чтения и редактирования файлов множества графических форматов. Является свободным и кроссплатформенным программным обеспечением. Часто применяется на web-серверах для создания конвертирования изображений предпросмотра или эскизов.

Как установить PHP ImageMagick содержится в этой инструкции «CentOS 7: Установка PHP ImageMagick».

2.4. Установка и настройка библиотек ffmpeg.

Устанавливаем ffmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах.

Как установить ffmpeg содержится в этой инструкции «CentOS 7: Установка ffmpeg».

3. Установка и настройка Let’s Encrypt.

Наша следующая задача — получить бесплатные сертификаты шифрования.

Ссылка: «CentOS 7: Настройка бесплатного ssl-сертификата Let’s Encrypt».

4. Установка и настройка системы баз данных MariaDB.

Для хранения информации на сервере используется MariaDB — ответвление от системы управления базами данных MySQL.

Ссылка: «CentOS 7: Установка и настройка системы баз данных MariaDB. Создание базы данных.»

5. Ротация логов web-сервера Nginx.

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

Ссылка: «CentOS 7: Ротация логов web-сервера Nginx».

6. Первое подключение к web-интерфейсу.

Подключаем нашу, ранее созданную в MariaDB, базу данных к web-интерфейсу облачного хранилища. Выберем тип базы данных «MariaDB», введем имя базы данных, логин и пароль. Создаем имя администратора web-интерфейса и его пароль. Ставим галочку на установку дополнительных модулей, их можно отключить потом в настройках, если вам они не понравятся или не нужны.

7. Установка и настройка Redis.

Данный раздел зарезервирован для инструкции по установке и настройке сервера кэширования Redis.

8. Самодиагностика после установки.

Зайдем в Настройки облачного хранилища Nextcloud, чтобы узнать результаты самодиагностики ткущего вариант развернутой нами версии и повысить их путем необходимых доустановок рекомендуемого создателями Nextcloud программного обеспечения.

Найдем пункт Общие сведения и перейдем в него:

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

Проверим безопасность официальным сканером Nextcloud, по адресу scan.nextcloud.com.

Результат должен быть примерно вот таким:

Перейдем к оптимизации нашего облачного хранилища Nextcloud.

9. Оптимизация Nextcloud.

9.1. Перенос каталога data для защиты данных.

Без тщательной настройки nginx допускает обращение по прямым именам файлов. Зная ваш логин и имя файла в вашем файловом хранилище можно получить доступ без пароля.

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

Исправить можно двумя путями:

  • Грамотно отредактировав конфиг nginx.
  • Переместив каталог /data в другое место.

Займемся вторым вариантом, открываем файл:

# mcedit /files/storage/www/config/config.php

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

'maintenance' => true,

Обратите внимание на запятую в конце строки — она важна!

Сохраните и закройте файл. В браузере вы можете увидеть, что система находится в режиме обслуживания.

Смело перемещаем каталог /data в каталоге Nextcloud в любое другое удобное место. Например, на диск большего объема. Можно смонтировать вообще отдельный огромный HDD диск под файлы пользователей, а оболочку Nextcloud поставить на SSD диске.

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

Снова открываем файл:

# mcedit /files/storage/www/config/config.php

Ищем в начале массива строк данный параметр 'datadirectory' и меняем его значение на своё место расположения папки /data:

'datadirectory' => '/ваш_путь/data',

Путь указан!

Вернем систему в режим работы с пользователями.

Открываем файл:

# mcedit /files/storage/www/config/config.php

В файле конфигурации меняем значение 'maintenance' с true на false:

'maintenance' => false,

Сохраните и закройте файл.

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

9.2. Изменяем лимит для загрузки файлов.

По-умолчанию максимальный размер, который можно загрузить 2MB, если есть потребность загружать файлы более 2MB в таком случаи необходимо изменить некоторые параметры в файле /etc/php.ini.

Подробнее как это сделать в файле php.ini описано в инструкции «CentOS 7: Увеличение максимального размера загружаемого файла в PHP / Apache / Nginx»..

9.3. Создание миниатюр.

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

Для добавления отображения превью видеофайлов отредактируйте файл настроек проекта, включив отображение превью для всех типов фотографий и видеофайлов.

Открываем файл конфигурации Nextcloud и добавляем по смыслу следующие строки:

# mcedit путь_до_nextcloud/config/config.php

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

'enabledPreviewProviders' =>
array (
'OC\Preview\Movie',
'OC\Preview\Image'
),

Обратите внимание на запятую в конце строки — она важна!

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

Для этого добавьте строчку:

'preview_max_x' => 512,
'preview_max_y' => 512,

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

Для этого отредактируйте значение переменной memory_limit в файле php.ini по адресу /etc/php.ini:

# mcedit /etc/php.ini

Находим данные строки по параметрам и присваиваем им значения, которые нам нужны:

memory_limit = 512M

Если оперативной памяти много, то можно щедро поставить разрешение использовать ее всю по мере надобности Nextcloud значение переменной выставляем ‘-1‘:

memory_limit = -1

Сохраняем файл и перезапускаем php-fpm:

# systemctl restart php-fpm

9.4. Подключение почтового ящика.

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

Нажимаем на Изображение учетной записи, переходим в Настройки, затем Основные параметры:

Раздел Почтовый сервер:

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

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

9.5. Изменение места хранения и ротация log-файла.

Традиционный log-файл системы Nextcloud находится по адресу /files/storage/www/data/nextcloud.log в каталоге со всеми данными пользователей data. Если вам требуется особенное место хранение файла, то можно просто переместить традиционный log-файл на новое место.

К примеру, мы создаём новое место предполагаемого хранения и пустой log-файл:

# mkdir -p /files/storage/log

# touch /files/storage/log/nextcloud.log

Настраиваем доступ:

# chmod 755 /files/storage/log/nextcloud.log

Изменяем права:

# chown nginx:nginx -R /files/storage/log/nextcloud.log

Открываем файл:

# mcedit /files/storage/www/config/config.php

Добавляем нижеследующий фрагмент перед последней скобкой «);»:

'log_type' => 'file',
'logtimezone' => '/Asia/Yekaterinburg',
'logfile' => '/files/storage/log/nextcloud.log', 'loglevel' => '2',

Сохраняем файл.

Немного поработаем с Nextcloud и проверяем что накопилось в log-файле. Он разросся.

Для организации компактности его хранения настраиваем ротацию log-файла виртуального хоста облачного файлохранилища Nextcloud.

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

Ссылка на способ организации системы ротации: «CentOS 7: Ротация логов web-сервера Nginx».

9.6. Настройка cron для фоновых заданий.

В cron добавляем задание Nextcloudcron.php — это необходимо для автоматического запуска некоторых процедур внутри самого Nextcloud, в противном случае, мы получим предупреждение cron не запущен.

Проверим, работает ли у нас cron в фоновом режиме?

# ps -ef | grep cron

Открываем файл заданий cron:

# mcedit /etc/crontab

Добавляем строки по смыслу общего синтаксиса в файле:

# Nextcloud core
# Run cron to execute task even when no user connected

5 * * * * nginx /usr/bin/php -f /files/storage/www/cron.php &>/dev/null

Где указаны следующие параметры:

  • 5 * * * * — задание выполняется каждые 5 минут;
  • root — пользователь которому принадлежит файл;
  • /usr/bin/php — с помощью чего обрабатывать файл;
  • /web/glpi/www/front/cron.php — путь до необходимого файла;
  • &>/dev/null — смысл вкратце — “весь вывод указанной команды спихнуть в черную дыру!”, это один из способов сделать программу по-настоящему безмолвной.

В данном примере скрипт /files/storage/www/cron.php будет выполняться раз в минуту.

Сохраняем файл.

Через некоторое время проверим периодичность выполнения задания:

# cat /var/log/cron

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

Зайдем в панель управления администрирования облачного хранилища Nextcloud и активируем метод автоматического запуска некоторых процедур с помощью cron.php.

9.7. Задание для службы systemd.

В CentOS 7 существует замечательная штука — сервис systemd, встроенный systemd таймер может быть отличной альтернативой cron.

Для запуска этой идеи нам потребуется создать 2 файла:

  • nextcloudcron.service
  • nextcloudcron.timer

Создадим их оба в системном каталоге /etc/systemd/system/.

Файл nextcloudcron.service должен содержать следующие строки:

# mcedit /etc/systemd/system/nextcloudcron.service

[Unit]
Description=Nextcloud cron.php job

[Service]
User=nginx
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php

Сохраните файл и выйдите из текстового редактора.

Файл будет работать от имени nginx пользователя и использовать файл из корневого каталога фактической установки Nextcloud. Фактический путь /var/www/nextcloud/cron.php с расположением файла cron.php.

Обращаю внимание, что .service не нуждается в секции [Install].

Файл nextcloudcron.timer должен содержать следующие строки:

# mcedit /etc/systemd/system/nextcloudcron.timer

[Unit]
Description=Run Nextcloud cron.php every 5 minutes

[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloudcron.service

[Install]
WantedBy=timers.target

Сохраните файл и выйдите из текстового редактора.

Важная часть в .timer юните — это OnBootSec и OnUnitActiveSec. OnBootSec таймер запустится через 5 минут после загрузки, в противном случае вам придется запускать его вручную после каждой загрузки.OnUnitActiveSec установит 5-минутный таймер после последней активации сервисного блока.

Теперь все, что осталось, это запустить и включить таймер, выполнив эту команду:

# systemctl enable --now nextcloudcron.timer

Если опцию --now использовать с enable, соответствующий блок также будет запущен.

Примечание! Выбор опции Cron в меню администратора для фоновых заданий не является обязательным, так как один раз cron.php выполняется из командной строки или службы cron, она автоматически установит его в Cron.

Проверим его активность он:

# systemctl status nextcloudcron.timer -l

Через 6-10 минут можно проверить что поменялось в настройках Nextcloud.

Как видно, служба сама переключила режим работы на Cron и трудится в автоматическом режиме.

9.8. Настройка очистки удалённых файлов (корзина).

По умолчанию данные в корзине Nextcloud хранятся 30 дней и удаляются в случае необходимости свободного места на диске.

Корзина включена по умолчанию. Настройки корзины позволяют использовать два параметра, минимальное время хранения удалённых данных и максимальное время хранения. Минимальное время — это количество дней, в течение которых файлы будет сохранены, после чего они могут быть удалены. Максимальное время — это количество дней, в течение которых данные будут удалены. Как минимальное, так и максимальное время можно определить параметрами настройки.

Доступные значения:

  • auto — настройки по умолчанию. Хранит файлы и папки в мусорном ведре в течение 30 дней и автоматически удаляет в любое время после этого, если требуется пространство (обратите внимание: файлы не могут быть удалены, если пространство не требуется).
  • D, auto— хранит файлы и папки в мусорном ящике для дней D +, удаляет в любое время в случае необходимости (обратите внимание: файлы не могут быть удалены, если пространство не требуется).
  • auto, D — удалите все файлы в мусорном ящике, которые старше D дней автоматически, удаляют другие файлы в любое время, если необходимо пространство.
  • D1, D2 — хранить файлы и папки в мусорном ведре не менее D1 дней и удалять, когда превышает D2 дней.
  • disabled — корзина мусора автоматически очищена, файлы и папки будут сохранены навсегда.

Для активации данного модуля, просто вставьте параметр (если его ещё нет) в файл путь_до_nextcloud/config/config.php в директории установки Nextcloud.

В случае установки по инструкции это будет выглядеть примерно так:

# mcedit путь_до_nextcloud/config/config.php

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

'trashbin_retention_obligation' => '7, auto',

Обратите внимание на запятую в конце строки — она важна!

10. Работа с офисными документами онлайн.

Как подключить Сервер документов читайте «Nextcloud: Установка и настройка версии Сервера документов ONLYOFFICE на CentOS 7».

11. Подключение каталога пользователя сетевым диском по протоколу WebDAV.

Как подключить каталог в Windows 10 читайте в статье «Nextcloud: Подключение каталога пользователя сетевым диском по протоколу WebDAV в Windows 10».

12. Итоговый файл конфигурации.

Примерный файл конфигурации /путь_до_nextcloud/корневой_каталог/config/config.php, который у вас получится после всех настроек Nextcloud по текущей инструкции. Некоторые строчки в config.php вы добавляете руками по ходу инструкции, некоторые дописываются системой Nextcloud.

Примечание! Интересное наблюдение, что некоторые записи вида \\OC\\Memcache\\Redis были сделаны с одним слешем \OC\Memcache\Redis, а Nextcloud сам его видоизменил. Так что не удивляйтесь, что по инструкции всё с одним слешем, а в итоге два слеша. Это Nextcloud сам поправил и пускай так всё и остается в рабочем состоянии.

Содержимое файла config.php.
<?php $CONFIG = array ( 'instanceid' => 'xxxxxxx',
  'passwordsalt' => 'xxxxxxx',
  'secret' => 'xxxxxxx',
  'trusted_domains' => 
  array (
    0 => 'site.ru',
  ),
  'datadirectory' => '/hdd/way/data',
  'dbtype' => 'mysql',
  'version' => '20.0.0.9',
  'overwrite.cli.url' => 'https://site.ru',
  'dbname' => 'xxxxxxx',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'xxxxxxx',
  'dbpassword' => 'xxxxxxx',
  'installed' => true,
  'filelocking.enabled' => true,
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'redis' => 
  array (
    'host' => 'localhost',
    'port' => 6379,
    'password' => 'xxxxxxx',
  ),
  'enabledPreviewProviders' => 
  array (
    0 => 'OC\\Preview\\Movie',
    1 => 'OC\\Preview\\Image',
  ),
  'preview_max_x' => 1024,
  'preview_max_y' => 1024,
  'log_type' => 'file',
  'logtimezone' => '/Asia/Yekaterinburg',
  'logfile' => '/hdd/way/data/nextcloud.log',
  'loglevel' => '2',
  'trashbin_retention_obligation' => '7, auto',
  'mail_smtpmode' => 'smtp',
  'mail_smtpsecure' => 'ssl',
  'mail_sendmailmode' => 'smtp',
  'mail_from_address' => 'xxxxxxx',
  'mail_domain' => 'yandex.ru',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpauth' => 1,
  'mail_smtphost' => 'smtp.yandex.ru',
  'mail_smtpport' => '465',
  'mail_smtpname' => 'xxxxxxx',
  'mail_smtppassword' => 'xxxxxxx',
);

13. Оригиналы источников информации.

  1. ru.wikipedia.org «Nextcloud».
  2. kurazhov.ru «Тюнинг Nextcloud 15».
  3. docs.nextcloud.com «Memory caching».
  4. obu4alka.ru «HTTP Strict Transport Security (HSTS) в NGINX».
  5. trofimovdigital.ru «Не работает Вебвизор при включенном X-Frame-Options».
  6. sevo44.ru «Cоllabora и настройка NextCloud».
  7. docs.nextcloud.com «Background jobs».

Читайте также: