Некоторые файлы не прошли проверку целостности nextcloud

Обновлено: 06.07.2024

В предыдущей статье я писал как можно установить и настроить nextcloud на операционной системе Ubuntu Server 20.04 с web-сервером nginx+php-fpm и базой данных postgresql. Почитать можно тут.

После успешного запуска nextcloud в панели администратора Вы можете в пункте общие сведения, увидеть следующие предупреждения:

Индексирование файлов

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

Включаем режим обслуживания:

И вводим данные строки:

Выключаем режим обслуживания

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

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

  • Веб-сервер не настроен должным образом для разрешения «/.well-known/webfinger».
  • Веб-сервер не настроен должным образом для разрешения «/.well-known/nodeinfo».
  • Веб-сервер не настроен должным образом для разрешения «/.well-known/caldav».
  • Веб-сервер не настроен должным образом для разрешения «/.well-known/carddav».

Также внесём следующие строки в файл .htaccess

Зависание входа в панель NextCloud

Лечится добавлением в конфигурационный файл NexCloud:

Не настроена система кэширования.

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

Хочу использовать Memcached. Для этого надо установите модуль для PHP и сам memcached.

Как оказалось есть два похожих пакета:

  • php-memcache — модуль Memcache для PHP,
  • php-memcached — расширение PHP для взаимодействия с memcached.

Нужен с буквой d в конце.

настройки в /etc/php/7.4/mods-available/memcached.ini оставляю все без изменений.
В выводе phpinfo(); появился блок с описанием memcached.

Настройки запуска сервиса в /etc/systemd/system/multi-user.target.wants/memcached.service и конфигурационный файл /etc/memcached.conf тоже не менял.

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

Должно выдать что-то вроде этого

Теперь в конфиге NextCloud добавим строки:

Модуль php-imagick не поддерживает SVG

Для устранения данного предупреждения необходимо установить модуль imagick:

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

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

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

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

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

Предупреждение headers

Для устранения данных ошибок в терминале набираем следующее:

И заполняем данным текстом:

Сохраняем файл (ctrl+o, ctrl+x). И перезагружаем nginx

Для устранения данного предупреждения отредактируем файл Nginx headers.conf:

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

PHP не настроен для системного окружения.

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

Запрос getenv(«PATH») возвращает пустые результаты.
Обратитесь к разделу о конфигурации PHP и примечаниям к конфигурации PHP из руководства по установке. Обратите внимание на настройку параметров PHP, особенно при использовании механизма php-fpm.

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

И сними с них комментарий (;).

Далее перезапустим php7.4-fpm

Значение PHP ниже рекомендуемого значения .

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

В терминале набираем:

Находим и редактируем следующие строки:

Не скачиваются файлы больше 1Гб

При попытках скачать из облака файлы объемом более 1гб скачивание прерывается при достижении 1гб. Такое происходит при условии использования Nginx как реверс-прокси. Решается очень просто, нужно добавить в конфиг сайта опцию «proxy_buffering off». Открываем конфиг Nginx, находим секцию в которой конфиг нашего Nextcloud и добавляем эту опцию:

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.

Подробное описание инструмента командной строки ownCloud / Nextcloud OCC

Подробное описание инструментов командной строки OCC

Проверка целостности

Плагины (приложения) с официальными тегами должны использовать код с подписью Nextcloud. Официальные приложения без подписей не будут установлены. Для сторонних плагинов подпись кода (Code Sigining) является необязательной.

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

Проверьте вашу заявку:

Только для разработчиков ядра Nextcloud.

Команды LDAP

Команды LDAP могут использоваться только после активации приложения «Пользователь и группа LDAP»

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

Используйте следующий синтаксис для поиска пользователей LDAP:

Результаты поиска совпадают с начала ключевого слова, вы можете увидеть следующий пример поискового ключевого слова "rob":

Будет выполнен поиск всех слов, начинающихся с «rob», таких как robbie, roberta или robin. Если вы хотите найти все слова, которые содержат «rob», вы можете использовать подстановочные знаки:

Доступны атрибуты поиска пользователя

Чтобы установить атрибуты поиска. Например, если вы установите свойство в

Вы можете быстро найти по фамилии + имени. Например: используйте пропущенные буквы

Вместо полного имени

Выполните поиск. Пробелы, которые следуют, будут опущены.

Проверьте, существует ли пользователь LDAP. (Доступно только после подключения Nextcloud к серверу LDAP)

Когда обнаруживается, что некоторые соединения LDAP отключены,

Он не будет работать. Это предотвратит ошибочную пометку пользователя как «несуществующего», поскольку его нельзя найти на отключенном сервере LDAP. Если вы уверены, что искомый пользователь не подключен к отключенному соединению LDAP, вы можете использовать

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

Будет создана пустая конфигурация LDAP. Первая созданная конфигурация не

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

Далее вы можете перечислить все ваши конфигурации:

Затем просмотрите определенную конфигурацию на основе настроенного идентификатора:

Может использоваться для удаления существующей конфигурации:

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

Используется для проверки правильности вашей конфигурации и ее применения на сервере:

Может быть использован для очистки таблицы сопоставления LDAP, вы можете просмотреть конкретные документыLDAP User Cleanup

Команда журнала

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

Вы можете просмотреть свой текущий статус журнала:

Чтобы включить ведение журнала. использование

Изменить место хранения журнала. использование

Установите размер файла ротации журнала, 0 означает отключить ротацию журнала.

Установите свой бэкэнд журнала, уровень журнала и часовой пояс, конфигурация по умолчанию соответственно

  • –backend [owncloud, syslog, errorlog]
  • –level [debug, info, warning, error]

Команды режима обслуживания

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

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

После сброса резервной копии данных или базы данных, она должна быть использована в первую очередь

, Это изменит ETag (значение сущности запрошенной переменной), используемое всеми файлами при взаимодействии с клиентом синхронизации, что позволит клиенту узнать, что файл был изменен.

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

В соответствии с config/mimetypemapping.json Чтобы определить файлы, которые изменили тип MIME, а также обновить базу данных и файловый кеш. Эта команда часто модифицируется config/mimetypemapping.json После использования. Если вы переместите MIME-тип, вы можете запустить

Чтобы применить изменения к существующим файлам.

безопасности

Используйте эти команды для управления SSL-сертификатами на уровне сервера. Эти функции полезны при создании общего ресурса с использованием других серверов Nextcloud с самозаверяющими сертификатами:

Список всех установленных сертификатов:

Импортировать новый сертификат:

Мусорный бак (мусорная корзина)

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

Используется для удаления файлов, удаленных конкретным пользователем, несколько имен пользователей разделяются пробелами. Если пользователь не указан, все файлы, удаленные пользователем, будут удалены.

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

Вот пример очистки удаленных файлов определенных пользователей Молли и Фрида:

Команды управления пользователями

Команды управления пользователями

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

ты можешь использовать это display-name Чтобы добавить пользователя с логином и групповым отношением пользователя, используйте следующий синтаксис:

display-name Относится к полному имени на странице пользователя в браузере, uid относится к пользователюUsername, Который является именем учетной записи, используемой пользователем для входа в систему. Например, добавьте нового пользователя по имени Лейла Смит и добавьте его вusersсdb-adminsГруппа, если группа не существует, она будет создана автоматически:

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

Позволяет установить пароль пользователя из переменных среды. Это предотвращает раскрытие пароля всем пользователям через список процессов и может отображаться только в истории пользователя, запустившего команду (root). Это также позволяет создавать сценарии, которые добавляют несколько новых пользователей.

Требуется запуск под учетной записью root вместо использования sudo для получения прав root. Потому что sudo удаляет переменные окружения. Вот пример добавления нового пользователя с именем Fred:

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

Вы также можете использовать

Чтобы сбросить пароль пользователя:

Просмотр последнего входа пользователя:

Прочитайте конфигурацию пользователя:

Настройка фильтра по плагину (приложению):

Получите определенную конфигурацию отдельно:

Изменить пользовательскую конфигурацию

Удалить определенную конфигурацию:

Создайте простой отчет, который подсчитывает всех пользователей, включая внешне аутентифицированных пользователей (таких как LDAP):

управление версиями

Этот набор команд доступен только при включенном плагине управления версиями (приложении)

Используйте эту команду, чтобы удалить версию файла определенного пользователя или удалить версию файла для всех пользователей, не указав:

Это пример удаления всех пользовательских версий:

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

Установите Nextcloud с помощью инструмента командной строки

Перевод инструмента командной строки OCC завершен. Исправление ошибок приветствуется!

Nextcloud

Usage:
help [options] [--] [<command_name>]

Arguments:
command The command to execute
command_name The command name [default: "help"]

Options:
—xml To output help as XML
—format=FORMAT The output format (txt, xml, json, or md) [default: "txt"]
—raw To output raw command help
-h, —help Display this help message
-q, —quiet Do not output any message
-V, —version Display this application version
—ansi Force ANSI output
—no-ansi Disable ANSI output
-n, —no-interaction Do not ask any interactive question
—no-warnings Skip global warnings, show command output only
-v|vv|vvv, —verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
The help command displays help for a given command:

php /var/www/nextcloud/occ help list

You can also output the help in other formats by using the —format option:

php /var/www/nextcloud/occ help —format=xml list

To display the list of available commands, please use the list command.

Дмитрий Семёркин

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

sudo -u owncloud php /var/www/nextcloud/occ files:scan -p /seventh/files/server_backup

(пользователь owncloud остался ещё с перехода :) )

Дмитрий Семёркин

Все команды можно посмотреть с помощью list:

sudo -u owncloud php /var/www/nextcloud/occ list
Nextcloud version 10.0.1

Usage:
command [options] [arguments]

Options:
-h, —help Display this help message
-q, —quiet Do not output any message
-V, —version Display this application version
—ansi Force ANSI output
—no-ansi Disable ANSI output
-n, —no-interaction Do not ask any interactive question
—no-warnings Skip global warnings, show command output only
-v|vv|vvv, —verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
check check dependencies of the server environment
help Displays help for a command
list Lists commands
status show some status information
upgrade run upgrade routines after installation of a new release. The release has to be installed before.
app
app:check-code check code to be compliant
app:disable disable an app
app:enable enable an app
app:getpath Get an absolute path to the app directory
app:list List all available apps
background
background:ajax Use ajax to run background jobs
background:cron Use cron to run background jobs
background:webcron Use webcron to run background jobs
config
config:app:delete Delete an app config value
config:app:get Get an app config value
config:app:set Set an app config value
config:import Import a list of configs
config:list List all configs
config:system:delete Delete a system config value
config:system:get Get a system config value
config:system:set Set a system config value
dav
dav:create-addressbook Create a dav addressbook
dav:create-calendar Create a dav calendar
dav:sync-birthday-calendar Synchronizes the birthday calendar
dav:sync-system-addressbook Synchronizes users to the system addressbook
db
db:convert-type Convert the Nextcloud database to the newly configured one
db:generate-change-script generates the change script from the current connected db to db_structure.xml
encryption
encryption:change-key-storage-root Change key storage root
encryption:decrypt-all Disable server-side encryption and decrypt all files
encryption:disable Disable encryption
encryption:enable Enable encryption
encryption:encrypt-all Encrypt all files for all users
encryption:list-modules List all available encryption modules
encryption:set-default-module Set the encryption default module
encryption:show-key-storage-root Show current key storage root
encryption:status Lists the current status of encryption
files
files:cleanup cleanup filecache
files:scan rescan filesystem
files:transfer-ownership All files and folders are moved to another user - shares are moved as well.
group
group:adduser add a user to a group
group:list list configured groups
group:removeuser remove a user from a group
integrity
integrity:check-app Check integrity of an app using a signature.
integrity:check-core Check integrity of core code using a signature.
integrity:sign-app Signs an app using a private key.
integrity:sign-core Sign core using a private key.
l10n
l10n:createjs Create javascript translation files for a given app
log
log:manage manage logging configuration
log:owncloud manipulate ownCloud logging backend
maintenance
maintenance:data-fingerprint update the systems data-fingerprint after a backup is restored
maintenance:mimetype:update-db Update database mimetypes and update filecache
maintenance:mimetype:update-js Update mimetypelist.js
maintenance:mode set maintenance mode
maintenance:repair repair this installation
maintenance:singleuser set single user mode
maintenance:update:htaccess Updates the .htaccess file

Дмитрий Семёркин

security
security:certificates list trusted certificates
security:certificates:import import trusted certificate
security:certificates:remove remove trusted certificate
trashbin
trashbin:cleanup Remove deleted files
twofactorauth
twofactorauth:disable Disable two-factor authentication for a user
twofactorauth:enable Enable two-factor authentication for a user
user
user:add adds a user
user:delete deletes the specified user
user:disable disables the specified user
user:enable enables the specified user
user:info show user info
user:lastseen shows when the user was logged in last time
user:list list configured users
user:report shows how many users have access
user:resetpassword Resets the password of the named user
user:setting Read and modify user settings
versions
versions:cleanup Delete versions

Игорь Чулков

Добавил по FTP файл в папку пользователя. Пользователь соответственно файл НЕ видит. Изменил файлу группу и владельца на apache.

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

После внесения изменений не забываем перезапускать php-fpm. Или можете после применения всех изменений перезапустить его один раз.

Содержание:

Убираем первое предупреждение:

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

И раскомментируем их.

Или, если побыстрее

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

Готово. Идём дальше.

Убираем второе предупреждение

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Убираем третье предупреждение

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


Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены на соответствующей странице документации.filecache.mtime
filecache.storage_mtime

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

В браузере вы можете увидеть, что система находится в режиме обслуживания. Теперь в консоли выполните следующее:

Затем выключите режим обслуживания.

Убираем предупреждение о php

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

Ищем memory_limit и вводим, например, 512M вместо 128M. И перезапускаем php-fpm

или если хотим побыстрее

Убираем предупреждение о кешировании.

Не настроена система кеширования

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

Поэтому прикручиваем систему кэширования, состоящую из локальной системы кэширования на основе APCu и системы распределённого кеширования Redis.

Ставим APCu

В файле php.ini включаем apcu

вставив в начало

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

Редактируем файл config/config.php в директории установки Nextсloud

Ставим Redis.

Проверяем, что он запустился

В тот же файл config/config.php

Сохраняем файл. Перезапускаем php-fpm, если вы это ещё не сделали и наслаждаемся ускоренной работе Nextcloud.

Убираем ошибку отсутствия индексов

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

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

При успешном индексировании будет следующий текст:

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

Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены на соответствующей странице документации.

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

И выводим из режима обслуживания

Убираем предупреждение о 4-х байтовых символах

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

Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к документации.

Так как первоначально Nextcloud я ставил на базе MariaDB, то по ссылке выше для возможности обработки ошибки я не заметил продолжение про MariaDB, а сразу стал применять шаги для MySQL. Не надо так. Поэтому распишу по шагам, что и как надо делать.

P.S. Убедитесь, что MariaDB версии выше 10.2. У меня была версия 15.1

Убедитесь, что на вашем сервере MySQL установлены следующие параметры InnoDB в файле:

и если их нет, то вставьте в конец файла.

Перезапустите сервер MariaDB

Выясните был ли изменён формат файла на Barracuda

Таблицы должны быть перенесены в “barracuda” вручную, одна за другой. Однако команды SQL можно легко создавать:

После всего проделанного формат файла должен поменяться на Barracuda. Проверим.

Инструкции для MySQL

Вводим в режим обслуживания.

Должен быть такой результат

Отключаем режим обслуживания.

Режим шифрования

Задействован устаревший режим шифрования файлов на стороне сервера.

Рекомендуется отключить такое шифрование. Более подробные сведения содержатся в документации.

Как я понял, устаревший режим шифрования был введён в ранних версиях Nextcloud и впоследствии заменён на новый. Однако в хранилище могли остаться файлы со старым (legacy) типом шифрования.

В документации сказано, что найти эти файлы можно командой

или более полный вариант

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

После этого в файле config.php можно отключить поддержку устаревшего формата шифрования, удалив строку

или, выставив значение false вместо true

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

Настройка обратного прокси для доступа

В файле nextcloud/config/config.php

Для этого добавьте в файл конфигурации nginx на стороне nextcloud следующее содержимое в секцию server

Веб-сервер не настроен должным образом для разрешения «/.well-known/caldav». .

Дополнительная информация может быть найдена в нашей документации

В конфиге nextcloud в статье есть строки с настройкой доступа к этому пути. Для удобства повторю тут

Новый dashboard

Следующая опция для тех, кто обновился до 20 версии и при заходе на главную облака видит новый dashboard вместо знакомого списка файлов.

Исправляется просто добавлением в файл config.php следующей строки

Модуль php-imagick и SVG

Модуль php-imagick в этом случае не поддерживает SVG.

Для лучшей совместимости рекомендуется установить его

Регион размещения сервера

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

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

Открывает файл config.php, расположенный в директории Nextcloud по пути config/config.php и внизу вставляем строку

Не знаю для чего вообще понадилось разработчикам из Nextcloud вставлять в код такое требование (а это требование, потому что иначе бы не было предупреждения на странице проверки конфигурации), но пока обновляться до 21 версии не стоит. Хотя, возможно, это из-за многочисленных требований регуляторов многих стран, в государственных учреждениях которых используется Nextcloud. Всё может быть. Со временем такое категоричное непринятие 21 версии у меня пропадёт. 🙂

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