Обновление nextcloud до 21 версии

Print Friendly, PDF & Email

Задача:

Обновить облачное хранилище nextcloud до версии 21

---------------------------------------------------------------

Процесс обновления при помощи веб интерфейса не отличается от статьи «Обновляем NextCloud до версии 20«. Но вот после обновления я столкнулся с рядом предупреждений, которые и будем исправлять

Текстовый вариант ошибок:

Предупреждения о текущей конфигурации.

Запланировано фоновое задание проверки пользовательских SSL сертификатов. Пожалуйста, проверьте позже.

Веб-сервер не настроен должным образом для разрешения «/.well-known/webfinger». Дополнительная информация может быть найдена в нашей документации.

Веб-сервер не настроен должным образом для разрешения «/.well-known/nodeinfo». Дополнительная информация может быть найдена в нашей документации.

Не указан регион размещения этого сервера Nextcloud, что требуется для возможности проверки номеров телефонов без указания кода страны. Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с ISO 3166-1↗.

В базе данных отсутствуют некоторые индексы. Так как создание таких индексов может занять достаточно продолжительное время, оно должно быть запущено вручную. Для создания индексов необходимо запустить команду «occ db:add-missing-indices» во время работы сервера Nextcloud. При созданных индексах, как правило, запросы к базе данных выполняются значительно быстрее.

Для последнего предупреждения необходимо выполнить команду в консоли сервера для добавления потерянных индексов. У меня сервер работает на системе FreeBSD и используется стандартные пути.

root@cloud:/ # sudo -u www php /usr/local/www/nextcloud/occ db:add-missing-indices
The process control (PCNTL) extensions are required in case you want to interrupt long running commands -                                                                                                         see https://www.php.net/manual/en/book.pcntl.php
Check indices of the share table.
Check indices of the filecache table.
Adding additional size index to the filecache table, this can take some time...
Filecache table updated successfully.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.
root@cloud:/ #

Ошибка связанная с регионом размещения nextcloud сервера, решается редактированием конфигурационного файла. Достаточно в самом конце, указать регион

'default_phone_region' => 'RU',

Сохраняем и проверяем конфиг

root@cloud:/ # cat /usr/local/www/nextcloud/config/config.php | grep default_phone_region
'default_phone_region' => 'RU',
root@cloud:/ #

Для исправления сообщения «Веб-сервер не настроен должным образом …..» пришлось перенастраивать конфиг nginx. Вот мой конфиг с внесёнными исправлениями

worker_processes 1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
upstream php-handler {
    server unix:/var/run/php-fpm.sock;
}
server {
    listen 80;
    listen [::]:80;
    server_name АДРЕС_ВАШЕГО_СЕРВЕРА;
    return 301 https://$server_name$request_uri;
	return 404;
}
server {
    listen 443      ssl http2;
    listen [::]:443 ssl http2;
    server_name АДРЕС_ВАШЕГО_СЕРВЕРА;
    ssl_certificate /usr/local/etc/letsencrypt/live/АДРЕС_ВАШЕГО_СЕРВЕРА/fullchain.pem;
    ssl_certificate_key /usr/local/etc/letsencrypt/live/АДРЕС_ВАШЕГО_СЕРВЕРА/privkey.pem;
    include /usr/local/etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem;
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    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;
    add_header X-Frame-Options "SAMEORIGIN";
    fastcgi_hide_header X-Powered-By;
    root /usr/local/www/nextcloud/;
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;
    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;
    index index.php index.html /index.php$request_uri;
    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;
    }
    location ^~ /.well-known {
        location = /.well-known/carddav     { return 301 /remote.php/dav/; }
        location = /.well-known/caldav      { return 301 /remote.php/dav/; }
        location ^~ /.well-known            { return 301 /index.php$uri; }
        try_files $uri $uri/ =404;
    }
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)  { return 404; }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)              { return 404; }
    location ~ \.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;
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
        fastcgi_pass php-handler;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }
    location ~ \.(?:css|js|svg|gif)$ {
        try_files $uri /index.php$request_uri;
        expires 6M;
        access_log off;
    }
    location ~ \.woff2?$ {
        try_files $uri /index.php$request_uri;
        expires 7d;
        access_log off;
    }

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

У nginx есть опция для перечитывания конфигов без перезагрузки сервера. Команда «nginx -s reload» перезапустит nginx только в случае если серьезных ошибок в конфигурации нет.

root@cloud:/ # nginx -s reload
root@cloud:/ #

Проверяем работу сервера

Помогла статья? Есть возможность отблагодарить автора

QR Link:

QR Code

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

комментария 2

  1. werwer:

    Спасибо.

    Перед релоадом nginx лучше выполнить тест nginx -t
    Можно и так

    • Согласен, но можно и без проверки конфига. Нджинкс будет использовать старый конфиг, если найдёт ошибки в новом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *