Первоначальная настройка NextCloud

Первоначальная настройка NextCloud

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

Как посмотреть текущий общий статус системы NextCloud

Давайте сначала проверим текущий статус системы после того, как была выполнена установка системы NextCloud.

Для этого необходимо перейти на страницу администрирования в раздел “Overview”:

http://files.itproblog.ru/index.php/settings/admin/overview

Как видно из скриншота выше в рассматриваемом экземпляре есть ряд ошибок и информационных сообщений с рекомендациями по их устранению.

Первоначальная настройка NextCloud

Пройдемся по порядку для каждого из замечаний мастера анализатора работоспособности.

Корректировки параметров PHP

Сначала скорректируем параметры PHP.

Для ошибки “The PHP memory limit is below the recommended value of 512MB.” необходимо отредактировать файл php.ini:

sudo nano /etc/php/8.1/apache2/php.ini

Нужно скорректировать вот этот параметр:

memory_limit = 1G

И перезапустим службу apache:

systemctl restart apache2

Чтобы исправить сообщение “Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it.” установим необходимые модули:

sudo apt install -y php-imagick imagemagick

Установка SSL сертификата и настройка доступа по HTTPS

Для того, чтобы подключение к серверу было надежно защищено загрузим на сервер SSL сертификат и сконфигурируем apache таким образом, чтобы он мог принимать только HTTPS подключения.

Создадим на сервере директория для хранения сертификатов:

sudo mkdir -p /etc/nextcloud/certs
sudo chown www-data:www-data /etc/nextcloud/certs/
sudo chmod 400 /etc/nextcloud/certs/

Скопируем сертификаты в эту директорию.

Включим нужные модули:

sudo a2enmod ssl
sudo systemctl restart apache2

Создадим конфигурационный файл для поддержки HTTPS:

sudo nano /etc/apache2/sites-available/nextcloud-ssl.conf

Содержимое файла:

<VirtualHost files.itproblog.ru:443>
    DocumentRoot "/data/nextcloud"
    ServerName files.itproblog.ru

    SSLEngine on
    SSLCertificateFile      /etc/nextcloud/certs/itproblog.ru.crt
    SSLCertificateKeyFile /etc/nextcloud/certs/itproblog.ru.key

        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
        </IfModule>

        <Directory /data/nextcloud/>
                 Require all granted
                 Options FollowSymlinks MultiViews
                 AllowOverride All
                 <IfModule mod_dav.c>
                 Dav off
                 </IfModule>
        </Directory>

        ErrorLog /var/log/apache2/files.itproblog.ru.error_log
        CustomLog /var/log/apache2/files.itproblog.ru.access_log common

 </VirtualHost>

Активируем сайт и перезапустим сервер apache:

sudo a2ensite nextcloud-ssl.conf
systemctl reload apache2

Дополнительно скорректируем файл публикации по HTTP таким образом, чтобы сервер всегда перенаправлял HTTP запросы на HTTPS:

sudo nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost files.itproblog.ru:80>
   ServerName files.itproblog.ru 
   Redirect permanent / https://files.itproblog.ru/
</VirtualHost>

Перезапускать сервер apache не нужно – изменения должны примениться без перезапуска службы.

Настройка кеширующего сервера

Для повешения производительности анализатор работоспособности NextCloud также рекомендует установить наш кеширующий сервер – “The database is used for transactional file locking. To enhance performance, please configure memcache, if available.” и “No memory cache has been configured. To enhance performance, please configure a memcache, if available. “.

Вариантов есть аж целых три. В статье будет использоваться вариант с локальным сервером Redis. Сначала установим сервер Redis:

sudo apt install -y redis-server php-redis

Включим аутентификацию по сокету для сервера Redis:

sudo nano /etc/redis/redis.conf

Раскомментируйте строчки с unixsocket и unixsocketperm, а также скорректируйте параметр unixsocketperm:

unixsocket /var/run/redis/redis-server.sock
unixsocketperm 770

Для того, чтобы у пользователя www-data были разрешения на файл сокета необходимо добавить его в соответствующую группу:

sudo usermod -a -G redis www-data

Далее нужно скорректировать параметры сервер NextCloud:

sudo nano /data/nextcloud/config/config.php

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

'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' =>'\OC\Memcache\Redis' ,
'redis' => [
   'host'     => '/var/run/redis/redis-server.sock',
   'port'     => 0,
],

Сохраните внесенные изменения и заключительным шагом перезапустите сервер redis и apache:

sudo systemctl restart apache2
sudo systemctl restart redis-server

Настройка региона

Установим значение региона для телефона. Открываем конфигурационный файл:

sudo nano /data/nextcloud/config/config.php

Добавляем вот такую строчку:

'default_phone_region' => 'RU'

Доступные коды можно посмотреть вот тут.

Сохраняем внесенные изменения и перезапускаем службу apache:

sudo systemctl restart apache2

Настройка запуска заданий

Для корректной работы сервера NextCloud ему необходимо периодически выполнять фоновые задания. В статье будут использоваться задания cron.

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

Затем необходимо настроить запуск задания. Файл с параметрами задания находится в корне директории сайта NextCloud:

Создадим задание для пользователя www-data:

crontab -u www-data -e

Добавьте следующую строчку в конфигурационный файл (только скорректируйте путь):

*/5  *  *  *  * php -f /data/nextcloud/cron.php

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

crontab -u www-data -l

Вывод должен быть следующий (с поправкой на расположений файла cron.php):

<...>
*/5  *  *  *  * php -f /data/nextcloud/cron.php

Настройка pretty URLs

Говоря по простому pretty URL удаляет хвостик index.php в URL адресах, что немного сокращает их и делает более презентабельными.

Убедимся, что необходимые модули включены:

sudo a2enmod env
sudo a2enmod rewrite

Теперь отредактируем конфигурационный файл config.php:

sudo nano /data/nextcloud/config/config.php

Добавим следующие строчки:

'overwrite.cli.url' => 'https://files.itproblog.ru/',
'htaccess.RewriteBase' => '/',

Сохраняем внесенные изменения и запускаем утилиту occ для изменения конфигурации htaccess:

sudo -u www-data php /data/nextcloud/occ maintenance:update:htaccess

После внесения изменений URL не будет включать index.php. Например, вместо вот такого URL:

https://files.itproblog.ru/index.php/settings/admin/overview

Будет следующий:

https://files.itproblog.ru/settings/admin/overview

Метаданные статьи

Идентификатор статьи:
41
Категория:
Дата добавления:
2024-03-11 23:39:53
Просмотры:
184
Рейтинг (Голоса):
(0)

Связанные статьи