Установка и настройка NextCloud на AlmaLinux 9: различия между версиями

Материал из Шпаргалка знаний
Перейти к навигации Перейти к поиску
Новая страница: «После установки на сервер AlmaLinux 9 (Minimal) (x86_64) 4Gb RAM, 4 CPU, 200Gb SSD, приступаем к подготовке сервера. === Подготовка сервера === ==== 1. Системные требования ==== С актуальными системными требованиями можно ознакомиться на сайте разработчика в разделе Administration Manual - Instal...»
 
 
Строка 410: Строка 410:


[[File:Next_02.jpg|link=]]
[[File:Next_02.jpg|link=]]
[[File:Next_08.jpg|link=]]


Завершаем установку, при желании, оставим галочку для установки рекомендованных приложений:
Завершаем установку, при желании, оставим галочку для установки рекомендованных приложений:

Текущая версия от 01:02, 11 октября 2024

После установки на сервер AlmaLinux 9 (Minimal) (x86_64) 4Gb RAM, 4 CPU, 200Gb SSD, приступаем к подготовке сервера.

Подготовка сервера

1. Системные требования

С актуальными системными требованиями можно ознакомиться на сайте разработчика в разделе Administration Manual - Installation and server configuration - System requirements. Необходимо убедиться, что наш сервер соответствует данным требованиям.

dnf update -y
dnf upgrade -y

2. Правильное время.

Устанавливаем утилиту chrony и nano:

dnf install nano chrony -y

Запускаем ее службу:

systemctl enable chronyd --now

Выставляем нужный часовой пояс:

timedatectl set-timezone Europe/Moscow

3. Настройка брандмауэра.

firewall-cmd --permanent --add-port={80,443}/tcp
firewall-cmd --reload

4. Отключение SELinux.

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

Установка и настройка веб-сервера

PHP версии 8.3

На момент написания этой статьи версией PHP по умолчанию на AlmaLinux 9 является PHP 8.0. Согласно системным требованиям Nexcloud по адресу https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html мы собираемся установить PHP 8.3 и использовать его для установки Nextcloud.

dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.3.rpm
dnf update

После обновления мы сможем проверить все доступные версии PHP для установки на наш сервер AlmaLinux после установки репозитория Remi.

dnf module list php

Вы увидите примерно такой вывод:

[root@rh ~]$# dnf module list php
Last metadata expiration check: 0:00:17 ago on Wed 19 Jun 2024 03:51:07 AM CDT.
AlmaLinux 9 - AppStream
Name                               Stream                                 Profiles                                                Summary                                            
php                                8.1                                    common [d], devel, minimal                              PHP scripting language                             
php                                8.2                                    common [d], devel, minimal                              PHP scripting language                             

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name                               Stream                                 Profiles                                                Summary                                            
php                                remi-7.4                               common [d], devel, minimal                              PHP scripting language                             
php                                remi-8.0                               common [d], devel, minimal                              PHP scripting language                             
php                                remi-8.1                               common [d], devel, minimal                              PHP scripting language                             
php                                remi-8.2                               common [d], devel, minimal                              PHP scripting language                             
php                                remi-8.3                               common [d], devel, minimal                              PHP scripting language 

Как видно выше, теперь мы можем установить PHP 8.3.

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

dnf module reset php
dnf module enable php:remi-8.3

Вот и все, мы перешли на PHP 8.3. Теперь, чтобы установить PHP 8.3 с необходимыми расширениями, мы можем выполнить эту команду ниже:

dnf install php php-{bz2,ctype,curl,fpm,gd,imagick,intl,json,fileinfo,libxml,mbstring,mysqlnd,openssl,posix,session,simplexml,xmlreader,xmlwriter,zip,zlib}

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

php -v

Он вернет такой вывод:

[root@almalinux8 ~]# php -v
PHP 8.3.8 (cli) (built: Jun 4 2024 14:53:17) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.8, Copyright (c) Zend Technologies
with Zend OPcache v8.3.8, Copyright (c), by Zend Technologies

Настройка PHP-FPM

На машине Almalinux, ‘user’ и ‘group’ в /etc/php-fpm.d/www.conf по умолчанию являются ‘apache.’ Поскольку мы будем использовать nginx в качестве веб-сервера, нам нужно отредактировать файл конфигурации.

nano /etc/php-fpm.d/www.conf

Измените ‘user’ и ‘group’ на ‘nginx’.

...
user = nginx
group = nginx
...

Сохраните файл, затем выйдите. После этого мы отредактируем некоторые значения PHP, необходимые для установки Nextcloud.

nano /etc/php.ini

Раскомментируйте и измените значения конфигурации, как показано ниже.

...
memory_limit = 1024M
date.timezone = "Europe/Moscow"
cgi.fixpathinfo = 0
...

Нам также необходимо изменить разрешения сеанса PHP и каталогов OpCache.

chown -R root.nginx /var/lib/php/opcache/
chown -R root.nginx /var/lib/php/session/

Затем перезапустим PHP-FPM и включим его после перезагрузки.

systemctl restart php-fpm
systemctl enable php-fpm

Установка и настройка NGINX

После настройки PHP-FPM мы установим и настроим nginx как веб-сервер, а не Apache. Выполните эту команду, чтобы установить его.

dnf install nginx -y

Запустите nginx и включите его при загрузке.

systemctl enable --now nginx

Давайте создадим блок сервера nginx.

nano /etc/nginx/conf.d/cloud.putyato.ru.conf

Вставьте следующее и обязательно замените cloud.putyato.ru на свое фактическое имя домена или поддомена:

upstream php-handler {
    server unix:/run/php-fpm/www.sock;
}

# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
    "" "";
    default "immutable";
}


server {
    listen 80;
    server_name cloud.putyato.ru;
 
    # Path to the root of your installation
    root /var/www/nextcloud;

     # Prevent nginx HTTP Server Detection
    server_tokens off;

    # set max upload size and increase upload timeout:
    client_max_body_size 512M;
    client_body_timeout 300s;
    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/wasm 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;


    # HTTP response headers borrowed from Nextcloud `.htaccess`
    add_header Referrer-Policy                      "no-referrer"   always;
    add_header X-Content-Type-Options               "nosniff"       always;
    add_header X-Download-Options                   "noopen"        always;
    add_header X-Frame-Options                      "SAMEORIGIN"    always;
    add_header X-Permitted-Cross-Domain-Policies    "none"          always;
    add_header X-Robots-Tag                         "none"          always;
    add_header X-XSS-Protection                     "1; mode=block" always;

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

    index index.php index.html /index.php$request_uri;

    # Rule borrowed from `.htaccess` to handle Microsoft DAV clients
    location = / {
        if ( $http_user_agent ~ ^DavClnt ) {
            return 302 /remote.php/webdav/$is_args$args;
        }
    }

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

    # Make a regex exception for `/.well-known` so that clients can still
    # access it despite the existence of the regex rule
    # `location ~ /(\.|autotest|...)` which would otherwise handle requests
    # for `/.well-known`.
    location ^~ /.well-known {
        # The rules in this block are an adaptation of the rules
        # in `.htaccess` that concern `/.well-known`.

        location = /.well-known/carddav { return 301 /remote.php/dav/; }
        location = /.well-known/caldav  { return 301 /remote.php/dav/; }

        location /.well-known/acme-challenge    { try_files $uri $uri/ =404; }
        location /.well-known/pki-validation    { try_files $uri $uri/ =404; }

       # Let Nextcloud's API for `/.well-known` URIs handle all other
        # requests by passing them to the front-end controller.
        return 301 /index.php$request_uri;
    }

    # Rules borrowed from `.htaccess` to hide certain paths from clients
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)  { return 404; }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)                { return 404; }

    # Ensure this block, which passes PHP files to the PHP process, is above the blocks
    # which handle static assets (as seen below). If this block is not declared first,
    # then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
    # to the URI, resulting in a HTTP 500 error response.
    location ~ \.php(?:$|/) {
        # Required for legacy support
        rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;

        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;

        fastcgi_param modHeadersAvailable true;         
                  # Avoid sending the security headers twice
        fastcgi_param front_controller_active true;     
                  # Enable pretty urls
        fastcgi_pass php-handler;

        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;

        fastcgi_max_temp_file_size 0;
    }

    location ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ {
        try_files $uri /index.php$request_uri;
        add_header Cache-Control "public, max-age=15778463, $asset_immutable";
        access_log off;     
                   # Optional: Don't log access to assets

        location ~ \.wasm$ {
            default_type application/wasm;
        }
    }

    location ~ \.woff2?$ {
        try_files $uri /index.php$request_uri;
        expires 7d;          
                    # Cache-Control policy borrowed from `.htaccess`
        access_log off;     
                    # Optional: Don't log access to assets
    }

    # Rule borrowed from `.htaccess`
    location /remote {
        return 301 /remote.php$request_uri;
    }

    location / {
        try_files $uri $uri/ /index.php$request_uri;
    }
}

Сохраните файл, затем выйдите и перезапустите nginx.

systemctl restart nginx

Установка сервера MySQL

Nextcloud поддерживает несколько баз данных, таких как PostgreSQL, Oracle, SQLite и MySQL/MariaDB. В этом руководстве мы будем использовать MySQL 8.0. Давайте сначала установим его, вызвав команду ниже.

dnf install mysql mysql-server
systemctl enable --now mysqld

Сервер MySQL теперь запущен и будет автоматически запущен после перезагрузки. Вы можете проверить статус, выполнив эту команду:

systemctl status mysqld

Команда вернет следующий вывод:

[root@almalinux9 ~]$# systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
     Active: active (running) since Wed 2024-06-19 03:26:55 CDT; 1min 41s ago
    Process: 4912 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
    Process: 4934 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
   Main PID: 5009 (mysqld)
     Status: "Server is operational"
      Tasks: 37 (limit: 23191)
     Memory: 459.9M
        CPU: 9.713s
     CGroup: /system.slice/mysqld.service
             └─5009 /usr/libexec/mysqld --basedir=/usr

Jun 19 03:26:41 almalinux9.rosehosting.com systemd[1]: Starting MySQL 8.0 database server...
Jun 19 03:26:41 almalinux9.rosehosting.com mysql-prepare-db-dir[4934]: Initializing MySQL database
Jun 19 03:26:55 almalinux9.rosehosting.com systemd[1]: Started MySQL 8.0 database server.

Создание базы данных

После установки сервера MySQL на предыдущем шаге мы можем приступить к созданию новой базы данных и пользователя для нашего веб-сайта Nextcloud.

mysql

В оболочке MySQL выполните следующие команды.

mysql> CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

mysql> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY "nextcloud";

mysql> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';

mysql> FLUSH PRIVILEGES;

mysql> \q

Не забудьте заменить « nextcloud » на более надежный пароль.

Установка SSL-сертификата

Мы установим SSL-сертификат для нашего сайта Nextcloud, используя бесплатный SSL-сертификат от Lets Encrypt.

dnf install certbot python3-certbot-nginx -y

После установки вы можете запустить эту команду для выпуска SSL-сертификата. Опять же, не забудьте заменить поддомен на ваше фактическое имя домена или поддомена; оно должно совпадать с именем в файле конфигурации блока сервера nginx, который мы создали ранее. Также убедитесь, что домен или поддомен уже указывает на IP-адрес вашего сервера.

certbot --nginx -d cloud.putyato.ru

Обязательно ответьте на вопросы, и вы увидите примерно такой вывод:

[root@rh ~]$# certbot --nginx -d cloud.putyato.ru
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): admin@putyato.ru

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Account registered.
Requesting a certificate for cloud.putyato.ru

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/cloud.putyato.ru/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/cloud.putyato.ru/privkey.pem
This certificate expires on 2024-09-17.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for cloud.putyato.ru to /etc/nginx/conf.d/nexcloud.conf
Congratulations! You have successfully enabled HTTPS on https://cloud.example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Теперь перезапустим nginx.

systemctl restart nginx

Установка Nextcloud

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

Для этого примера мы загрузим последнюю доступную версию. Давайте выполним эту команду:

wget https://download.nextcloud.com/server/releases/latest.zip -O latest.zip

Затем извлеките загруженный zip-архив в корневой каталог документов на вашем сервере.

unzip latest.zip -d /var/www/
mkdir /var/www/nextcloud/data
chown -R nginx: /var/www/nextcloud

После извлечения вы можете приступить к установке Nextcloud через веб-установщик по адресу http://cloud.yourdomain.com, щелкните вкладку MySQL/MariaDB, затем заполните поля по мере необходимости, затем нажмите кнопку «Установить», чтобы завершить установку.

Переключаемся на MySQL/MariaDB, вводим в качестве логина, пароля и базы : nextcloud

Завершаем установку, при желании, оставим галочку для установки рекомендованных приложений:

После установки мы окажемся в системе.

Проверка безопасности и параметров

Для корректной работы системы выполним дополнительную настройку системы. После входа в nextcloud под администратором, переходим в настройки для пользователя:

В разделе «Параметры сервера» переходим в Основные сведения:

В разделе «Проверка безопасности и параметров» мы можем увидеть список проблем. Рассмотрим процесс решения некоторых из них.

1. PHP не настроен правильно для получения переменных системного окружения

Открываем файл php.ini. При нашей установке, это:

nano /etc/php-fpm.d/www.conf

Снимаем комментарий с параметра PATH:

env[PATH] = /usr/local/bin:/usr/bin:/bin

Перезапускаем php-fpm:

systemctl restart php-fpm

2. Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ

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

nano /etc/php.ini

Меняем настройку для memory_limit:

memory_limit = 512M

Перезапускаем php-fpm:

systemctl restart php-fpm

3. В базе данных отсутствуют некоторые индексы

Выполним команду для индексирования баз:

sudo -u apache php /var/www/nextcloud/occ db:add-missing-indices

4. Некоторые индексы базы данных не были преобразованы в тип big int

Выполним команду для преобразования в тип big int:

sudo -u apache php /var/www/nextcloud/occ db:convert-filecache-bigint

На запрос Continue with the conversion отвечаем утвердительно:

Continue with the conversion (y/n)? [n] y

5. Настраиваем модуль OPcache

Открываем конфигурационный файл:

nano /etc/php.d/10-opcache.ini

Редактируем следующее:

...
opcache.enable=1
...
opcache.enable_cli=1
...
opcache.interned_strings_buffer=32
...
opcache.max_accelerated_files=10000
...
opcache.memory_consumption=256
...
opcache.save_comments=1
...
opcache.revalidate_freq=1
...

Перезапускаем php-fpm:

systemctl restart php-fpm

6. MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы

Выполняем конфигурирование в несколько этапов.

Настройка СУБД Заходим в оболочку mysql:

mysql -uroot -p

Смотрим значение для переменной innodb_file_format:

> show variables like 'innodb_file_format';

Если видим значение «Antelope», меняем его на Barracuda:

> SET GLOBAL innodb_file_format=Barracuda;
> quit

Настройка Nextcloud Переводим Nextcloud в режим обслуживания:

sudo -u apache php /var/www/nextcloud/occ maintenance:mode --on

Перезагружаем mariadb (если на первом шаге нам пришлось менять значение для переменной innodb_file_format):

systemctl restart mariadb

Редактирование базы данных Снова подключаемся к консоли управления СУБД:

mysql -uroot -p

Меняем кодировку для базы данных:

> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  • где nextcloud — имя созданной нами базы данных.

Выходим из mariadb:

> quit

Также задаем новую кодировку для nextcloud

sudo -u apache php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"

Преобразуем все таблицы в базе:

sudo -u apache php /var/www/nextcloud/occ maintenance:repair

Завершаем режим обслуживания:

sudo -u apache php /var/www/nextcloud/occ maintenance:mode --off

7. Чтобы поменять PHP8.2 на PHP8.3 и более старшую версию.

PHP 8.3 недоступен в репозиториях по умолчанию, необходимых для установки репозитория Remi:

Проверяем имеется ли нужная версия по ссылки: dnf install http://rpms.remirepo.net/enterprise

Устанавливаем нужный репозиторий (в нашем случае):

dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

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

dnf module reset php
dnf module install php:remi-8.3 --allowerasing

Проверяем версию PHP:

php -v

8. Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте //memcache//.

Устанавливаем нужные библиотеки.

dnf install php-memcached memcached php-pecl-memcached -y

После разрешаем автозапуск и запускаем сервис кэширования:

systemctl enable memcached --now
systemctl restart php-fpm

Проверяем запустился ли memcached.

ps ax | grep memcached

Должны увидеть:

[root@cloud ~]# ps ax | grep memcached
  65140 ?        Ssl    0:00 /usr/bin/memcached -p 11211 -u memcached -m 64 -c 1024 -l 127.0.0.1,::1
  65169 pts/0    S+     0:00 grep --color=auto memcached

Теперь в конфиге NextCloud по пути: /var/www/nextcloud/config/config.php добавим строки:

nano /var/www/nextcloud/config/config.php
  'memcache.local' => '\OC\Memcache\Memcached',
  'memcache.distributed' => '\OC\Memcache\Memcached',
  'memcached_servers' => [
     [ '127.0.0.1', 11211 ],
 ],

Перезапускаем сервер:

reboot

9. База данных используется для блокировки транзакционных файлов. Для повышения производительности, пожалуйста, настройте //memcache//, если таковой имеется.

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

Включите репозиторий:

dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

Перечислите все доступные пакеты Redis в репозитории Remi.

dnf module list | grep redis

Смотрим последнюю версию, она на сегодня 7.2

Предварительно может понадобиться сброс модуля редис

dnf module reset redis

Предполагая, что последняя основная версия - 7.2, установите эту версию:

dnf module install redis:remi-7.2 -y

Включите службу Redis для запуска во время загрузки и запускаем сам Redis.

systemctl enable redis.service
systemctl start redis.service

Настройка Redis

Откройте файл конфигурации Redis :

nano /etc/redis.conf

Вписываем туда:

maxmemory 128mb
maxmemory-policy allkeys-lru
save 900 1
save 300 10
save 60 10000

Сохраните и закройте конфигурационный файл, затем перезапустите Redis, чтобы применить изменения.

systemctl restart redis.service

Проверяем запустился ли Redis

ps ax | grep redis

должны увидеть

[root@cloud ~]# ps ax | grep redis
   1319 ?        Ssl    0:01 /usr/bin/redis-server 127.0.0.1:6379
   1786 pts/0    S+     0:00 grep --color=auto redis

Теперь в конфиге NextCloud по пути: /var/www/nextcloud/config/config.php добавим строки:

nano /var/www/nextcloud/config/config.php
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     'timeout' => 0.0,
     'password' => '', // Optional, if not defined no password will be used.
      ),

Перезапускаем сервер:

reboot

10. Не указан регион размещения этого сервера Nextcloud

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

nano /var/www/nextcloud/config/config.php

и добавляем туда

'default_phone_region' => 'RU',

Установка и настройка клиента

Для синхронизации файлов установим и настроим клиента. Nextcloud поддерживает установку на Windows, Linux, Mac, iOS и Android.

Переходим на страницу загрузки Nextcloud и скачиваем нужный клиент. После устанавливаем его, отвечая на все вопросы мастера по умолчанию. Для установки клиента на телефон, пользуемся Google Play или Apple App Store.

Запускаем клиентское приложение и переходим к настройке, кликнув по Войти:

На следующей странице вводим адрес нашего сервера и кликаем по Далее:

Нас перекинет на веб страницу для авторизации — вводим логин и пароль для пользователя. После успешной авторизации можно использовать клиент для синхронизации с файлов с нашим облаком.