Ошибка при сборке чанков код ошибки 504 nextcloud

Server: Ошибка при сборке чанков, код состояния 504 Спасибо, что сообщили о проблемах в Nextcloud! Примечание. Это ** средство отслеживания проблем Nextcloud **, пожалуйста, НЕ используйте его, чтобы получить ответы на свои вопросы или получить помощь по исправлению вашей установки. Это место, где можно сообщить разработчикам об ошибках после того, как ваш сервер был […]

Содержание

  1. Server: Ошибка при сборке чанков, код состояния 504
  2. Действия по воспроизведению
  3. Ожидаемое поведение
  4. Фактическое поведение
  5. Конфигурация сервера
  6. Конфигурация LDAP (удалите эту часть, если не используется)
  7. Конфигурация клиента
  8. Error when assembling chunks, status code 504 on Nextcloud AIO and large files #978
  9. Comments
  10. How to use GitHub
  11. Steps to reproduce
  12. Expected behavior
  13. Actual behavior
  14. Host OS
  15. Traff / Seo / Etc
  16. no-style
  17. Установка облака NextCloud в docker контейнере postgres + redis + amd64 или arm64
  18. Необходимые требования
  19. В двух словах о Nextcloud
  20. Подготовка
  21. Конфигурация и запуск
  22. Подключаем домен
  23. Установка NextCloud
  24. Тюнинг NextCloud
  25. Возможные проблемы
  26. Подключаем Redis
  27. Включаем принудительный режим https
  28. Увеличиваем размер чанков
  29. Чиним cron
  30. Обновление Nextcloud
  31. Полезные команды
  32. Плагины
  33. Пользователи

Server: Ошибка при сборке чанков, код состояния 504

Спасибо, что сообщили о проблемах в Nextcloud! Примечание. Это ** средство отслеживания проблем Nextcloud **, пожалуйста, НЕ используйте его, чтобы получить ответы на свои вопросы или получить помощь по исправлению вашей установки. Это место, где можно сообщить разработчикам об ошибках после того, как ваш сервер был отлажен. Вы можете найти помощь по отладке вашей системы на наших домашних форумах пользователей: https://help.nextcloud.com или, если вы используете Nextcloud в большой организации, спросите наших инженеров на https://portal.nextcloud.com. См. Также https://nextcloud.com/support для получения информации о вариантах поддержки. Это средство отслеживания ошибок для серверного компонента. Найдите другие компоненты на https://github.com/nextcloud/. Чтобы сообщить о потенциальных проблемах безопасности, пожалуйста, посетите https://nextcloud.com/security/. Чтобы мы могли справиться с ошибкой, пожалуйста, внимательно заполните информацию ниже. Вы также можете использовать приложение шаблона проблемы, чтобы предварительно заполнить большую часть необходимой информации: https://apps.nextcloud.com/apps/issuetemplate. Если вы являетесь клиентом и используете Nextcloud Enterprise, отправьте свою проблему непосредственно на портале Nextcloud https : //portal.nextcloud.com, чтобы наши преданные инженеры быстрее разрешили проблему. Обратите внимание, что Nextcloud — это проект с открытым исходным кодом, поддерживаемый Nextcloud GmbH. Большинство наших добровольцев являются домашними пользователями и поэтому в первую очередь заботятся о проблемах, которые затрагивают домашних пользователей. Наши платные инженеры уделяют приоритетное внимание проблемам наших клиентов. Если вы не являетесь ни домашним пользователем, ни клиентом, подумайте о том, чтобы заплатить кому-нибудь, чтобы он исправил вашу проблему, сделайте это самостоятельно или станьте клиентом.

Действия по воспроизведению

  1. Загрузите большой файл, в моем случае файл .zip размером 9 ГБ
  2. Ошибка покажет «Ошибка при сборке чанков, код состояния 504»
  3. Файл заблокирован и не может быть удален «Не удалось загрузить ресурс: сервер ответил статусом 423 ()»

Ожидаемое поведение

Расскажите нам, что должно произойти
Ожидается, что файл будет загружен без ошибок

Фактическое поведение

Расскажите, что происходит вместо
Ошибка 504 при сборке фрагментов и файл заблокирован, его невозможно переместить или удалить.

Конфигурация сервера

Операционная система :
Ubuntu 18.04
Веб сервер:

База данных:
Тип: pgsql

Версия: PostgreSQL 10.10 (Ubuntu 10.10-0ubuntu0.18.04.1) на x86_64-pc-linux-gnu, скомпилировано gcc (Ubuntu 7.4.0-1ubuntu1

18.04.1) 7.4.0, 64-разрядная

Размер: 14,4 МБ
Версия PHP:
PHP
Версия: 7.2.24

Ограничение памяти: 512 МБ.

Максимальное время выполнения: 3600

Максимальный размер загрузки: 1000 МБ
Версия Nextcloud: (см. Страницу администратора Nextcloud)

Обновлено из более старой версии Nextcloud / ownCloud или из новой установки:

Откуда вы установили Nextcloud:
Профессиональная установка
Даниэль Ханссон
T&M Hansson IT AB
https://www.hanssonit.se

и установлен из приложения Unraid, 2 разных источника, та же проблема
Статус подписи:

Статус подписи

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

Список приложений

Конфигурация Nextcloud:

Отчет о конфигурации

Вы используете внешнее хранилище, если да, то какое: local / smb / sftp / .

Вы используете шифрование: да / нет

Вы используете внешний пользовательский сервер, если да, какой: LDAP / ActiveDirectory / Webdav / .

Конфигурация LDAP (удалите эту часть, если не используется)

Конфигурация клиента

Браузер:
Последняя версия Google Chrome
Операционная система:
Windows 10

Источник

Error when assembling chunks, status code 504 on Nextcloud AIO and large files #978

How to use GitHub

  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don’t comment if you have no relevant information to add. It’s just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Steps to reproduce

Stock installation. Nothing was changed from AIO install.

Expected behavior

Upload of large files (such as videos)

Actual behavior

I just installed the latest version of Nextcloud AIO (I already had a manually installed version running). When I try to upload large files, I get the error “Error when assembling chunks, status code 504”. I’ve read in several places that this is related to the Apache (and/or nginx) timeout option, but while I knew very well how to change this option in my manually installed configuration, I confess I have no idea how to do it with Nextcloud AIO (and docker more generally). I think I “just” need to change the timeout in the Apache config, but if someone can help me by explaining how to do it properly, especially because this multi-container system seems sensitive to external modification. In particular how to restart Apache after the modification, etc? So if anyone can help me, that’s cool.).

Host OS

Debian 11.4.0 installed on a NUC6CAYH (3 cores allocated / 8GB of RAM)

Источник

Traff / Seo / Etc

no-style

Установка облака NextCloud в docker контейнере postgres + redis + amd64 или arm64

Необходимые требования

Чтобы всё получилось нам понадобится:

  • Сервер с Root доступом. Рекомендую вот этот
  • Доменное имя. Можно бесплатный домен или поддомен
  • Установленный Docker + Docker-Compose
  • Установленный и настроенный Nginx Proxy Manager
  • 30 — 45 минут времени

В двух словах о Nextcloud

Умеет шифровать данные.

Умеет синхронизировать фаилы и папки.

Умеет работать по протоколу сетевой файловой системы WebDAV.

Обладает большим количеством плагинов и дополнений. Есть например плагин для хранения и структурирования ссылок под названием Bookmarks. Плагин аудиоплеер. Плагин для ведения базы паролей. Плагин для редактирования контактов — имена, номера телефонов, почта, дополнительные поля с быстрым поиском. Даже книга с рецептами присутствует)

Кроссплатформенный. Изначально работает в браузере, а так же существуют клиенты под Windows, Linux, MacOS, Android, iOS. Скачать клиент под необходимое п.о. можно отсюда.

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

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

Подготовка

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

Сделаем нашего пользователя (не root !) владельцем этой директории

Конфигурация и запуск

Перейдём в директорию, которую мы создавали выше

Создадим фаил docker-compose.yml

И заполняем его таким таким содержанием. Данный конфиг подойдёт сразу под amd64 и arm64 архитектуры.

Если Вы хотите поднять NextCloud не светя порты наружу, прочитайте про проксирование приложения в NPM через хостнейм. После усвоения материала используйте этот фаил docker-dompose. В противном случае используйте первый вариант, изначально пост писался именно под него!

В конфиге обязательно обращаем внимание на строки PUID и PGID. Если нам это нужно, то в них мы можем вписать идентификатор пользователя и группы, от которого хотим запускать контейнер!

Для этого их необходимо раскомментировать. А сами ID можно посмотреть написав в терминале:

Самые распространённые идентификаторы 1000 и 1001

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

Далее. Если это необходимо, то можно изменить название сервиса базы данных postgres-nextcloud на любое угодное. Мы его потом будем вписывать при установке вместо localhost!

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

Я советую периодически проверять DockerHub на наличие новых версий. На момент написания статьи актуальная версия была
nextcloud:23.0.1

Стартуем контейнер с NextCloud

Выхлоп в терминале должен быть как на скрине ниже.

Подключаем домен

Пришло время подключить домен к облаку. Делать это будем при помощи Nginx Proxy Manager, о котором я писал недавно в одноимённой статье.

В Nginx Proxy Manager(далее NPM) создаём новый хост. Заполняем необходимую информацию.

  • Домен либо поддомен
  • Ip адрес
  • Порт — 13370 (если вы не меняли его в docker-compose.yml)

Нажимаем Save и ждём примерно 60 секунд.

После этого снова редактируем только что добавленный хост, нажав на три точки справа и Edit.

На этот раз отправляемся в раздел SSL в котором запрашиваем новый ssl сертификат для нашего домена — Request a new SSL Certificate


И нажимаем кнопку Save

Обратите внимание, что после нажатия кнопки Save не должно быть никаких ошибок. Если у вас всё же были какие то ошибки, скорее всего это связано с тем что у вас не успели обновиться записи в DNS, либо вы превысили лимиты(количество попыток) LetsEncrypt. В обоих случаях надо просто подождать и повторить попытку позже.

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

Мы должны увидеть страницу установки NextCloud

Установка NextCloud

Придумываем комбинацию из сложного логина и пароля для администратора облака и вписываем в соответствующие поля.

Так как мы хотим использовать PostgreSQL вместо SQLite, то нам нужно явно указать это. Для этого нажимаем Хранилище и база данных

Откроется окно с дополнительными настройками.

Каталог с данными /Data оставляем по умолчанию.

Выбираем пункт PostgreSQL. Нам необходимо вписать туда свои данные, которые находятся в фаиле docker-compose.yml.

Обратите внимание на пункт Хост базы данных, в котором по стандарту уже вписано localhost. В самом начале я говорил что можно поменять название сервиса для базы данных. Если вы меняли его то вписывайте своё название, если не меняли то вместо localhost вписывайте postgres-nextcloud

Внимательно проверяем корректность заполненных данных.

По желанию включаем или выключаем пункт Установить рекомендуемые приложения.

Нажимаем кнопку Завершить установку.

После установки нас перекидывает на страницу приветствия.

На этом установку NextCloud можно считать выполненной успешно.

Тюнинг NextCloud

Наверняка вы замечали что если в админ панели, пойти в Настройки во вкладку Система и пролистнуть до версии php то там выставлены ограничения.

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

В папке рядом с docker-compose.yml создадим фаил nextcloud.ini

С таким содержанием (подправьте под ресурсы вашего сервера!)

Отлично, фаил добавили, теперь необходимо раскомментировать его же в docker-compose.yml

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

Сохраняем. И стартуем

Теперь облако работает шустрее за счёт увеличения лимитов по оперативной памяти. Также мы увеличили время выполнения php скриптов. И увеличили размер максимально загружаемого фаила до 16 GB

Возможные проблемы

Иногда бывает что с релизами версия Php меняется. У некоторых неофициальных образов месторасположение папки с Php находится вообще в другом месте. В таком случае нам необходимо узнать точное расположение папки.

Для этого зайдём внутрь нашего контейнера

Находясь внутри контейнера пробуем попасть в папку с Php

В некоторых неофициальных образах Nextcloud пхп находится тут: (напомню в данной статье мы ставим официальный образ)

Далее действуем исходя из полученных результатов. Прописываем полный путь до папки с Php в docker-compose.yml если он у вас отличается. И далее всё заработает как надо.

Подключаем Redis

Наверняка вы заметили его в docker-compose.yml в самом низу.

Находясь в папке рядом с docker-compose.yml останавливаем наш контейнер

Редактируем фаил docker-compose.yml

Тут нам нужно убрать комментарии из строк (поменяв пароль на свой)

а так же полностью расскоментировать сервис redis-nextcloud

Пароль должен быть такой же как в предыдущих строчках которые мы раскомментировали:

Вновь стартуем наш контейнер

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

Проще всего проверить работу Redis, обратившись к нему по внутреннему адресу. Для этого сначала напишем

и найдём там id’шник redis или его имя. В нашем случае имя redis-nextcloud. Используем это имя в следующей команде:

Тут нас интересует секция IPAddress»: XXX.XXX.XXX.XXX» она находится почти в самом низу.

Каждый раз этот ip будет разный. В моём случае это оказался 172.27.0.2

обратимся к нашему инстансу редиса по этому ip используя пароль который мы ему задавали

В ответ мы получим PONG

Теперь посмотрим как общаются Nextcloud и Redis

Ответ должен быть OK

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

На этом подключение Redis успешно завершено

Включаем принудительный режим https

Некоторые плагины требуют чтобы у нас был включен принудительный режим https. Например плагин для хранения паролей passwords.

Теперь необходимо отредактировать фаил . /nextcloud/config/config.php

После второй строки вставляем строку

Внимательно, соблюдая отступы, там по 2 пробела в начале каждой новой строки. Должно получиться вот так:

Стартуем наш контейнер и проверяем что всё ок

Увеличиваем размер чанков

Есть один неприятный баг. Проявляется этот баг при загрузке больших фаилов, пишет ошибку 504 и не загружает фаил

Судя по тикету на гитхабе — его не могут зафиксить уже несколько лет.

Покопавшись, вроде получилось его побороть. Дело в том что NextCloud из коробки делит фаилы на чанки(chunks). По стандарту размер одного чанка равен 10 MB

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

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

Тут необходимо вместо nextcloud-23 вписать имя вашего контейнера с NextCloud. Вот так:

Я пробовал на фаиле в 4 GB и данное сообщение не появлялось, однако, на фаиле в 8 GB оно появлялось, но через какое то время фаил всё равно загружался и был полностью рабочим.

Чиним cron

Nextcloud использует специальный фаил cron.php для того чтобы инициировать такие процессы как сканирование фаилов, музыки, очистку мусора и другие. Желательно выполнять этот фаил каждые 5-10 минут.

Используя NextCloud в докере из коробки к сожалению эта фича не работает и приходится использовать режим AJAX, который выполняет фаил cron.php при загрузке каждой страницы. Это создаёт дополнительную нагрузку на сервер.

Мы делегируем выполнение этого функционала, штатному cron. Для этого сначала установим его

Проверим что он запущен и работает

Мы будем запускать наше задание от root поэтому пишем

В самую нижнюю строчку добавляем наше задание

Сохраняем и выходим. Ждём 5 минут и проверяем результат

Обновление Nextcloud

Периодически для Nextcloud выходят обновления, рассмотрим как правильно обновиться.

Внимание! Все обновления Nextcloud стоит делать последовательно, не перескакивая через версию. Например если у Вас была версия 21.x.x то чтобы обновиться на версию 23.x.x необходимо сначала обновить nextcloud до версии 22.x.x и только потом уже до 23.x.x !

Переходим в директорию с nextcloud

Посмотрим на структуру фаилов и директорий

Создаём папку, куда свалим нашу предыдущую рабочую версию

Скопируем в эту директорию все фаилы от предыдущей рабочей версии

Редактируем фаил docker-compose.yml заменив в нём версию образа nextcloud на более новую. Версии можно посмотреть в DockerHub

Поднимаем контейнер с новой версией

Открываем Nextcloud в браузере. Нас приветствует мастер обновления.

Ожидаем какое то время. В результате визард предложит перейти в nextcloud, что завершит процедуру обновления.

Кстати на скрине видно что были отключены некоторые плагины. В действительности после того как я перешёл в облако, все эти плагины были включены и работали, несмотря на то что в сообщении написано что они не совместимы.

Обновление на новую версию завершено.

Полезные команды

Рассмотрим специальные служебные команды для NextCloud. Все эти команды подаются в качестве параметров на occ.php

Во всех приведённых ниже командах не забудьте заменить имя контейнера nextcloud-23 на своё

Плагины

Отобразить список плагинов

Включить плагин. Например Activity

Отключить плагин. Например Activity

Обновить все плагины (либо вместо —all указать нужный плагин)

Получить полный путь папки с плагином. Например плагина Mind Map

Пользователи

Произвести сканирование на предмет наличия новых фаилов

Произвести поиск недостоющих индексов в бд

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

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

Отобразить список доверенных доменов

Добавить доверенный домен. В поле value вписываем ip либо домен

Остальные команды можно найти тут

На этом всё. Все молодцы кто до сюда дошёл и у кого всё получилось!

Источник


    • #1

    Hi Everyone,

    I am facing this issue when I’m trying to upload bigger files to my NextCloud. I definitely need to have the possibility to upload bigger files as I need to share files for video editing — it’s not uncommon to have 20GB+ files. How can I solve this issue? I saw some forum posts where they are talking about an apache issue but that shouldn’t be relevant to me. Not sure what information you need so I attached some screenshots to have some info about the system.

    1. Running containers in Portainer

    2. Basic system info (CPU, Kernel, etc.)

    3. File systems

    4. Disks

    • Offizieller Beitrag
    • #2
    • #3

    Thanks for the links, I checked them out but I’m not sure what to do with it to be honest. It seems like I will have some help during the weekend and hopefully he is going to help me figuring out what to do. I suspect I have some issues with encryption. I basically just want to turn it off but unfortunately it’s not as easy as it is to turn it on.

    • #4

    Maybe look at «step 9» at https://www.linuxbabe.com/ubun…tu-20-04-nginx-lemp-stack. Modify the size according to your needs. Maybe the files are in different locations, but if you look at the instructions above of the guide, you should be able to understand what should be in the files (i.e. how they should look like to know if you are working on the correct file).

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration/webserver/proxy issue.
  • This issue is not already reported on Github (I’ve searched it).
  • Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
  • I agree to follow Nextcloud’s Code of Conduct.

Bug description

Upload a file, say 400 MB. After upload progress bar completes, there is a Processing files step. After a minute or so, there is this error message Error when assembling chunks, status code 504 . Eventually, the file is uploaded and would show up in the web interface, yet, there is this error. Depending on the size of the file, clamscan takes 100% of the CPU.
Doesnt occur with smaller files say few MBs.

Nextcloud error

Steps to reproduce

  1. Upload a file, say 400 MB and wait the upload progress bar completes,
  2. Wait for the Processing files step
  3. After a minute or so, there is this error message Error when assembling chunks, status code 504
  4. Although the error message, the file is uploaded eventually after several minutes, depending on the file size. During this period all CPU time is taken by clamav

Expected behavior

No error message.

Installation method

Official All-in-One appliance

Operating system

Debian/Ubuntu

PHP engine version

PHP 7.4

Web server

Apache (supported)

Database engine version

PostgreSQL

Is this bug present after an update or on a fresh install?

Updated to a major version (ex. 22.2.3 to 23.0.1)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO — SAML
  • Other

Configuration report

## Server configuration detail

**Operating system:** Linux 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64

**Webserver:** Apache (fpm-fcgi)

**Database:** pgsql PostgreSQL 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit

**PHP version:** 7.4.3

Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, session, standard, sodium, cgi-fcgi, PDO, xml, apcu, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, imagick, imap, intl, json, ldap, exif, pdo_pgsql, pgsql, apc, posix, readline, shmop, SimpleXML, soap, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Phar, Zend OPcache

**Nextcloud version:** 23.0.3 - 23.0.3.2

**Updated from an older Nextcloud/ownCloud or fresh install:** 

**Where did you install Nextcloud from:** unknown

<details><summary>Signing status</summary>

Array
(
)

</details>

<details><summary>List of activated apps</summary>


Enabled:
 - accessibility: 1.9.0
 - activity: 2.15.0
 - admin_audit: 1.13.0
 - afterlogic: 2.0.3
 - analytics: 4.2.1
 - announcementcenter: 6.1.1
 - appointments: 1.12.2
 - apporder: 0.15.0
 - calendar: 3.2.2
 - checksum: 1.1.3
 - circles: 23.1.0
 - cloud_federation_api: 1.6.0
 - cms_pico: 1.0.18
 - comments: 1.13.0
 - contacts: 4.1.0
 - contactsinteraction: 1.4.0
 - dashboard: 7.3.0
 - dav: 1.21.0
 - deck: 1.6.1
 - event_update_notification: 1.5.0
 - external: 3.10.2
 - federatedfilesharing: 1.13.0
 - federation: 1.13.0
 - files: 1.18.0
 - files_antivirus: 3.2.2
 - files_external: 1.15.0
 - files_pdfviewer: 2.4.0
 - files_rightclick: 1.2.0
 - files_sharing: 1.15.0
 - files_trashbin: 1.13.0
 - files_versions: 1.16.0
 - files_videoplayer: 1.12.0
 - firstrunwizard: 2.12.0
 - forms: 2.5.0
 - fulltextsearch_elasticsearch: 23.0.0
 - groupfolders: 11.1.2
 - integration_onedrive: 1.1.2
 - logreader: 2.8.0
 - lookup_server_connector: 1.11.0
 - maps: 0.1.10
 - music: 1.5.1
 - nextcloud_announcements: 1.12.0
 - notes: 4.3.1
 - notifications: 2.11.1
 - oauth2: 1.11.0
 - onlyoffice: 7.3.2
 - password_policy: 1.13.0
 - photos: 1.5.0
 - privacy: 1.7.0
 - provisioning_api: 1.13.0
 - ransomware_protection: 1.12.0
 - recommendations: 1.2.0
 - serverinfo: 1.13.0
 - settings: 1.5.0
 - sharebymail: 1.13.0
 - support: 1.6.0
 - survey_client: 1.11.0
 - systemtags: 1.13.0
 - tasks: 0.14.4
 - text: 3.4.1
 - theming: 1.14.0
 - twofactor_backupcodes: 1.12.0
 - twofactor_totp: 6.2.0
 - unsplash: 1.2.4
 - updatenotification: 1.13.0
 - user_retention: 1.6.0
 - user_status: 1.3.1
 - viewer: 1.7.0
 - weather_status: 1.3.0
 - workflow_script: 1.8.0
 - workflowengine: 2.5.0
Disabled:
 - encryption
 - user_ldap

Configuration (config/config.php)

{
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "localhost",
        "*.*.*.*",
        "nextcloud",
        "www.cloudcreator.eu"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "pgsql",
    "version": "23.0.3.2",
    "overwrite.cli.url": "https://nextcloud/",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "log_type": "file",
    "logfile": "/var/log/nextcloud/nextcloud.log",
    "loglevel": "2",
    "log.condition": {
        "apps": [
            "admin_audit"
        ]
    },
    "mail_smtpmode": "smtp",
    "logtimezone": "Europe/Brussels",
    "maintenance": false,
    "updater.release.channel": "stable",
    "memcache.local": "\OC\Memcache\APCu",
    "default_phone_region": "BE",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_sendmailmode": "smtp",
    "mail_smtpauthtype": "LOGIN",
    "mail_smtpauth": 1,
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "25",
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "theme": ""
}

Cron Configuration: Array
(
[backgroundjobs_mode] => cron
[lastcron] => 1649751002
)

External storages: yes

External storage configuration

Encryption: no

User-backends:

  • OCUserDatabase

Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0



### List of activated Apps

```shell
<details><summary>List of activated apps</summary>


Enabled:
 - accessibility: 1.9.0
 - activity: 2.15.0
 - admin_audit: 1.13.0
 - afterlogic: 2.0.3
 - analytics: 4.2.1
 - announcementcenter: 6.1.1
 - appointments: 1.12.2
 - apporder: 0.15.0
 - calendar: 3.2.2
 - checksum: 1.1.3
 - circles: 23.1.0
 - cloud_federation_api: 1.6.0
 - cms_pico: 1.0.18
 - comments: 1.13.0
 - contacts: 4.1.0
 - contactsinteraction: 1.4.0
 - dashboard: 7.3.0
 - dav: 1.21.0
 - deck: 1.6.1
 - event_update_notification: 1.5.0
 - external: 3.10.2
 - federatedfilesharing: 1.13.0
 - federation: 1.13.0
 - files: 1.18.0
 - files_antivirus: 3.2.2
 - files_external: 1.15.0
 - files_pdfviewer: 2.4.0
 - files_rightclick: 1.2.0
 - files_sharing: 1.15.0
 - files_trashbin: 1.13.0
 - files_versions: 1.16.0
 - files_videoplayer: 1.12.0
 - firstrunwizard: 2.12.0
 - forms: 2.5.0
 - fulltextsearch_elasticsearch: 23.0.0
 - groupfolders: 11.1.2
 - integration_onedrive: 1.1.2
 - logreader: 2.8.0
 - lookup_server_connector: 1.11.0
 - maps: 0.1.10
 - music: 1.5.1
 - nextcloud_announcements: 1.12.0
 - notes: 4.3.1
 - notifications: 2.11.1
 - oauth2: 1.11.0
 - onlyoffice: 7.3.2
 - password_policy: 1.13.0
 - photos: 1.5.0
 - privacy: 1.7.0
 - provisioning_api: 1.13.0
 - ransomware_protection: 1.12.0
 - recommendations: 1.2.0
 - serverinfo: 1.13.0
 - settings: 1.5.0
 - sharebymail: 1.13.0
 - support: 1.6.0
 - survey_client: 1.11.0
 - systemtags: 1.13.0
 - tasks: 0.14.4
 - text: 3.4.1
 - theming: 1.14.0
 - twofactor_backupcodes: 1.12.0
 - twofactor_totp: 6.2.0
 - unsplash: 1.2.4
 - updatenotification: 1.13.0
 - user_retention: 1.6.0
 - user_status: 1.3.1
 - viewer: 1.7.0
 - weather_status: 1.3.0
 - workflow_script: 1.8.0
 - workflowengine: 2.5.0
Disabled:
 - encryption
 - user_ldap

«`

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

https://www.cloudcreator.eu/index.php/s/4yj4bQTiHqqdntB

Additional info

No response

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration/webserver/proxy issue.
  • This issue is not already reported on Github (I’ve searched it).
  • Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
  • I agree to follow Nextcloud’s Code of Conduct.

Bug description

Upload a file, say 400 MB. After upload progress bar completes, there is a Processing files step. After a minute or so, there is this error message Error when assembling chunks, status code 504 . Eventually, the file is uploaded and would show up in the web interface, yet, there is this error. Depending on the size of the file, clamscan takes 100% of the CPU.
Doesnt occur with smaller files say few MBs.

Nextcloud error

Steps to reproduce

  1. Upload a file, say 400 MB and wait the upload progress bar completes,
  2. Wait for the Processing files step
  3. After a minute or so, there is this error message Error when assembling chunks, status code 504
  4. Although the error message, the file is uploaded eventually after several minutes, depending on the file size. During this period all CPU time is taken by clamav

Expected behavior

No error message.

Installation method

Official All-in-One appliance

Operating system

Debian/Ubuntu

PHP engine version

PHP 7.4

Web server

Apache (supported)

Database engine version

PostgreSQL

Is this bug present after an update or on a fresh install?

Updated to a major version (ex. 22.2.3 to 23.0.1)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO — SAML
  • Other

Configuration report

## Server configuration detail

**Operating system:** Linux 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64

**Webserver:** Apache (fpm-fcgi)

**Database:** pgsql PostgreSQL 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit

**PHP version:** 7.4.3

Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, session, standard, sodium, cgi-fcgi, PDO, xml, apcu, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, imagick, imap, intl, json, ldap, exif, pdo_pgsql, pgsql, apc, posix, readline, shmop, SimpleXML, soap, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Phar, Zend OPcache

**Nextcloud version:** 23.0.3 - 23.0.3.2

**Updated from an older Nextcloud/ownCloud or fresh install:** 

**Where did you install Nextcloud from:** unknown

<details><summary>Signing status</summary>

Array
(
)

</details>

<details><summary>List of activated apps</summary>


Enabled:
 - accessibility: 1.9.0
 - activity: 2.15.0
 - admin_audit: 1.13.0
 - afterlogic: 2.0.3
 - analytics: 4.2.1
 - announcementcenter: 6.1.1
 - appointments: 1.12.2
 - apporder: 0.15.0
 - calendar: 3.2.2
 - checksum: 1.1.3
 - circles: 23.1.0
 - cloud_federation_api: 1.6.0
 - cms_pico: 1.0.18
 - comments: 1.13.0
 - contacts: 4.1.0
 - contactsinteraction: 1.4.0
 - dashboard: 7.3.0
 - dav: 1.21.0
 - deck: 1.6.1
 - event_update_notification: 1.5.0
 - external: 3.10.2
 - federatedfilesharing: 1.13.0
 - federation: 1.13.0
 - files: 1.18.0
 - files_antivirus: 3.2.2
 - files_external: 1.15.0
 - files_pdfviewer: 2.4.0
 - files_rightclick: 1.2.0
 - files_sharing: 1.15.0
 - files_trashbin: 1.13.0
 - files_versions: 1.16.0
 - files_videoplayer: 1.12.0
 - firstrunwizard: 2.12.0
 - forms: 2.5.0
 - fulltextsearch_elasticsearch: 23.0.0
 - groupfolders: 11.1.2
 - integration_onedrive: 1.1.2
 - logreader: 2.8.0
 - lookup_server_connector: 1.11.0
 - maps: 0.1.10
 - music: 1.5.1
 - nextcloud_announcements: 1.12.0
 - notes: 4.3.1
 - notifications: 2.11.1
 - oauth2: 1.11.0
 - onlyoffice: 7.3.2
 - password_policy: 1.13.0
 - photos: 1.5.0
 - privacy: 1.7.0
 - provisioning_api: 1.13.0
 - ransomware_protection: 1.12.0
 - recommendations: 1.2.0
 - serverinfo: 1.13.0
 - settings: 1.5.0
 - sharebymail: 1.13.0
 - support: 1.6.0
 - survey_client: 1.11.0
 - systemtags: 1.13.0
 - tasks: 0.14.4
 - text: 3.4.1
 - theming: 1.14.0
 - twofactor_backupcodes: 1.12.0
 - twofactor_totp: 6.2.0
 - unsplash: 1.2.4
 - updatenotification: 1.13.0
 - user_retention: 1.6.0
 - user_status: 1.3.1
 - viewer: 1.7.0
 - weather_status: 1.3.0
 - workflow_script: 1.8.0
 - workflowengine: 2.5.0
Disabled:
 - encryption
 - user_ldap

Configuration (config/config.php)

{
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "localhost",
        "*.*.*.*",
        "nextcloud",
        "www.cloudcreator.eu"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "pgsql",
    "version": "23.0.3.2",
    "overwrite.cli.url": "https://nextcloud/",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "log_type": "file",
    "logfile": "/var/log/nextcloud/nextcloud.log",
    "loglevel": "2",
    "log.condition": {
        "apps": [
            "admin_audit"
        ]
    },
    "mail_smtpmode": "smtp",
    "logtimezone": "Europe/Brussels",
    "maintenance": false,
    "updater.release.channel": "stable",
    "memcache.local": "\OC\Memcache\APCu",
    "default_phone_region": "BE",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_sendmailmode": "smtp",
    "mail_smtpauthtype": "LOGIN",
    "mail_smtpauth": 1,
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "25",
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "theme": ""
}

Cron Configuration: Array
(
[backgroundjobs_mode] => cron
[lastcron] => 1649751002
)

External storages: yes

External storage configuration

Encryption: no

User-backends:

  • OCUserDatabase

Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0



### List of activated Apps

```shell
<details><summary>List of activated apps</summary>


Enabled:
 - accessibility: 1.9.0
 - activity: 2.15.0
 - admin_audit: 1.13.0
 - afterlogic: 2.0.3
 - analytics: 4.2.1
 - announcementcenter: 6.1.1
 - appointments: 1.12.2
 - apporder: 0.15.0
 - calendar: 3.2.2
 - checksum: 1.1.3
 - circles: 23.1.0
 - cloud_federation_api: 1.6.0
 - cms_pico: 1.0.18
 - comments: 1.13.0
 - contacts: 4.1.0
 - contactsinteraction: 1.4.0
 - dashboard: 7.3.0
 - dav: 1.21.0
 - deck: 1.6.1
 - event_update_notification: 1.5.0
 - external: 3.10.2
 - federatedfilesharing: 1.13.0
 - federation: 1.13.0
 - files: 1.18.0
 - files_antivirus: 3.2.2
 - files_external: 1.15.0
 - files_pdfviewer: 2.4.0
 - files_rightclick: 1.2.0
 - files_sharing: 1.15.0
 - files_trashbin: 1.13.0
 - files_versions: 1.16.0
 - files_videoplayer: 1.12.0
 - firstrunwizard: 2.12.0
 - forms: 2.5.0
 - fulltextsearch_elasticsearch: 23.0.0
 - groupfolders: 11.1.2
 - integration_onedrive: 1.1.2
 - logreader: 2.8.0
 - lookup_server_connector: 1.11.0
 - maps: 0.1.10
 - music: 1.5.1
 - nextcloud_announcements: 1.12.0
 - notes: 4.3.1
 - notifications: 2.11.1
 - oauth2: 1.11.0
 - onlyoffice: 7.3.2
 - password_policy: 1.13.0
 - photos: 1.5.0
 - privacy: 1.7.0
 - provisioning_api: 1.13.0
 - ransomware_protection: 1.12.0
 - recommendations: 1.2.0
 - serverinfo: 1.13.0
 - settings: 1.5.0
 - sharebymail: 1.13.0
 - support: 1.6.0
 - survey_client: 1.11.0
 - systemtags: 1.13.0
 - tasks: 0.14.4
 - text: 3.4.1
 - theming: 1.14.0
 - twofactor_backupcodes: 1.12.0
 - twofactor_totp: 6.2.0
 - unsplash: 1.2.4
 - updatenotification: 1.13.0
 - user_retention: 1.6.0
 - user_status: 1.3.1
 - viewer: 1.7.0
 - weather_status: 1.3.0
 - workflow_script: 1.8.0
 - workflowengine: 2.5.0
Disabled:
 - encryption
 - user_ldap

«`

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

https://www.cloudcreator.eu/index.php/s/4yj4bQTiHqqdntB

Additional info

No response

docker-compose + linuxserver + wireguard

Сегодня будем поднимать облако NextCloud в докер контейнере. Получив в результате отличную альтернативу всяким проприетарным продуктам типа яндекс диск, облако mail.ru, Dropbox, Google диск и т.д.

Необходимые требования

Чтобы всё получилось нам понадобится:

  • Сервер с Root доступом. Рекомендую вот этот
  • Доменное имя. Можно бесплатный домен или поддомен
  • Установленный Docker + Docker-Compose
  • Установленный и настроенный Nginx Proxy Manager
  • 30 — 45 минут времени

Бесплатный.

Умеет шифровать данные.

Умеет синхронизировать фаилы и папки.

Умеет работать по протоколу сетевой файловой системы WebDAV.

Обладает большим количеством плагинов и дополнений. Есть например плагин для хранения и структурирования ссылок под названием Bookmarks. Плагин аудиоплеер. Плагин для ведения базы паролей. Плагин для редактирования контактов — имена, номера телефонов, почта, дополнительные поля с быстрым поиском. Даже книга с рецептами присутствует)

Кроссплатформенный. Изначально работает в браузере, а так же существуют клиенты под Windows, Linux, MacOS, Android, iOS. Скачать клиент под необходимое п.о. можно отсюда.

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

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

Подготовка

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

sudo mkdir -p /app/nextcloud/nextcloud/{apps,config,data}

Сделаем нашего пользователя (не root !) владельцем этой директории

sudo chown -R $USER:$USER /app/nextcloud/

Конфигурация и запуск

Перейдём в директорию, которую мы создавали выше

cd /app/nextcloud

Создадим фаил docker-compose.yml

nano docker-compose.yml

И заполняем его таким таким содержанием. Данный конфиг подойдёт сразу под amd64 и arm64 архитектуры.

В конфиге обязательно обращаем внимание на строки PUID и PGID. Если нам это нужно, то в них мы можем вписать идентификатор пользователя и группы, от которого хотим запускать контейнер!

Для этого их необходимо раскомментировать. А сами ID можно посмотреть написав в терминале:

id

Самые распространённые идентификаторы 1000 и 1001

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

— POSTGRES_DB=nextcloud
— POSTGRES_USER=nextcloud
— POSTGRES_PASSWORD=YOURPASSWORD

Далее. Если это необходимо, то можно изменить название сервиса базы данных postgres-nextcloud на любое угодное. Мы его потом будем вписывать при установке вместо localhost!

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

Я советую периодически проверять DockerHub на наличие новых версий. На момент написания статьи актуальная версия была
nextcloud:23.0.1

Стартуем контейнер с NextCloud

sudo docker-compose up -d

Выхлоп в терминале должен быть как на скрине ниже.

nextcloud container good start

Подключаем домен

Пришло время подключить домен к облаку. Делать это будем при помощи Nginx Proxy Manager, о котором я писал недавно в одноимённой статье.

В Nginx Proxy Manager(далее NPM) создаём новый хост. Заполняем необходимую информацию.

  • Домен либо поддомен
  • Ip адрес
  • Порт — 13370 (если вы не меняли его в docker-compose.yml)

nextcloud npm domain

Нажимаем Save и ждём примерно 60 секунд.

После этого снова редактируем только что добавленный хост, нажав на три точки справа и Edit.

На этот раз отправляемся в раздел SSL в котором запрашиваем новый ssl сертификат для нашего домена — Request a new SSL Certificate

nextcloud npm add ssl to host

nextcloud npm add ssl to host 2

И нажимаем кнопку Save

Обратите внимание, что после нажатия кнопки Save не должно быть никаких ошибок. Если у вас всё же были какие то ошибки, скорее всего это связано с тем что у вас не успели обновиться записи в DNS, либо вы превысили лимиты(количество попыток) LetsEncrypt. В обоих случаях надо просто подождать и повторить попытку позже.

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

Мы должны увидеть страницу установки NextCloud

nextcloud start install

Придумываем комбинацию из сложного логина и пароля для администратора облака и вписываем в соответствующие поля.

Так как мы хотим использовать PostgreSQL вместо SQLite, то нам нужно явно указать это. Для этого нажимаем Хранилище и база данных

Откроется окно с дополнительными настройками.

Каталог с данными /Data оставляем по умолчанию.

Выбираем пункт PostgreSQL. Нам необходимо вписать туда свои данные, которые находятся в фаиле docker-compose.yml.

nextcloud db select

Обратите внимание на пункт Хост базы данных, в котором по стандарту уже вписано localhost. В самом начале я говорил что можно поменять название сервиса для базы данных. Если вы меняли его то вписывайте своё название, если не меняли то вместо localhost вписывайте postgres-nextcloud

Внимательно проверяем корректность заполненных данных.

По желанию включаем или выключаем пункт Установить рекомендуемые приложения.

Нажимаем кнопку Завершить установку.

nextcloud install

После установки нас перекидывает на страницу приветствия.

nextcloud install succsess

На этом установку NextCloud можно считать выполненной успешно.

Тюнинг NextCloud

Наверняка вы замечали что если в админ панели, пойти в Настройки во вкладку Система и пролистнуть до версии php то там выставлены ограничения.

nextcloud tuning before

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

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

sudo docker-compose down

В папке рядом с docker-compose.yml создадим фаил nextcloud.ini

nano nextcloud.ini

С таким содержанием (подправьте под ресурсы вашего сервера!)

upload_max_filesize=16G
post_max_size=16G
memory_limit=2G
max_input_time 7200
max_execution_time 7200

Отлично, фаил добавили, теперь необходимо раскомментировать его же в docker-compose.yml

nano docker-compose.yml

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

# — ./nextcloud.ini:/usr/local/etc/php/conf.d/nextcloud.ini

к такому виду

— ./nextcloud.ini:/usr/local/etc/php/conf.d/nextcloud.ini

Сохраняем. И стартуем

sudo docker-compose up -d

Проверяем

nextcloud tuning after

Теперь облако работает шустрее за счёт увеличения лимитов по оперативной памяти. Также мы увеличили время выполнения php скриптов. И увеличили размер максимально загружаемого фаила до 16 GB

Возможные проблемы

Иногда бывает что с релизами версия Php меняется. У некоторых неофициальных образов месторасположение папки с Php находится вообще в другом месте. В таком случае нам необходимо узнать точное расположение папки.

Для этого зайдём внутрь нашего контейнера

sudo docker exec -it nextcloud-23 bash

Находясь внутри контейнера пробуем попасть в папку с Php

cd /usr/local/etc/php/conf.d/

В некоторых неофициальных образах Nextcloud пхп находится тут: (напомню в данной статье мы ставим официальный образ)

cd /etc/php*

Далее действуем исходя из полученных результатов. Прописываем полный путь до папки с Php в docker-compose.yml если он у вас отличается. И далее всё заработает как надо.

Подключаем Redis

Наверняка вы заметили его в docker-compose.yml в самом низу.

Находясь в папке рядом с docker-compose.yml останавливаем наш контейнер

sudo docker-compose down

Редактируем фаил docker-compose.yml

nano docker-compose.yml

Тут нам нужно убрать комментарии из строк (поменяв пароль на свой)

— REDIS_HOST=redis-nextcloud
— REDIS_HOST_PASSWORD=YOURREDISPASSWORD

а так же полностью расскоментировать сервис redis-nextcloud

Пароль должен быть такой же как в предыдущих строчках которые мы раскомментировали:

redis-nextcloud:
  image: redis:alpine
  container_name: redis-nextcloud
  command: redis-server —requirepass YOURREDISPASSWORD
  restart: unless-stopped

Вновь стартуем наш контейнер

sudo docker-compose up -d

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

sudo apt install redis-tools

Проще всего проверить работу Redis, обратившись к нему по внутреннему адресу. Для этого сначала напишем

sudo docker ps

и найдём там id’шник redis или его имя. В нашем случае имя redis-nextcloud. Используем это имя в следующей команде:

sudo docker inspect redis-nextcloud

nextcloud redis host ip

Тут нас интересует секция IPAddress»: XXX.XXX.XXX.XXX» она находится почти в самом низу.

Каждый раз этот ip будет разный. В моём случае это оказался 172.27.0.2

обратимся к нашему инстансу редиса по этому ip используя пароль который мы ему задавали

redis-cli -a YOURREDISPASSWORD -h 172.27.0.2 ping

nextcloud redis host ping

В ответ мы получим PONG

Теперь посмотрим как общаются Nextcloud и Redis

redis-cli -a YOURREDISPASSWORD -h 172.27.0.2 monitor

nextcloud redis host monitor ok

Ответ должен быть OK

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

nextcloud redis host monitor data

На этом подключение Redis успешно завершено

Включаем принудительный режим https

Некоторые плагины требуют чтобы у нас был включен принудительный режим https. Например плагин для хранения паролей passwords.

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

sudo docker-compose down

Теперь необходимо отредактировать фаил …/nextcloud/config/config.php

sudo nano nextcloud/config/config.php

После второй строки вставляем строку

‘overwriteprotocol’ => ‘https’,

Внимательно, соблюдая отступы, там по 2 пробела в начале каждой новой строки. Должно получиться вот так:

nextcloud overwriteprotocol https

Стартуем наш контейнер и проверяем что всё ок

sudo docker-compose up -d

nextcloud passwords no error

Увеличиваем размер чанков

Есть один неприятный баг. Проявляется этот баг при загрузке больших фаилов, пишет ошибку 504 и не загружает фаил

Error when assembling chunks, status code 504

Судя по тикету на гитхабе — его не могут зафиксить уже несколько лет.

Покопавшись, вроде получилось его побороть. Дело в том что NextCloud из коробки делит фаилы на чанки(chunks). По стандарту размер одного чанка равен 10 MB

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

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

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ config:app:set files max_chunk_size —value 20971520

Тут необходимо вместо nextcloud-23 вписать имя вашего контейнера с NextCloud. Вот так:

nextcloud increase chunk size

Я пробовал на фаиле в 4 GB и данное сообщение не появлялось, однако, на фаиле в 8 GB оно появлялось, но через какое то время фаил всё равно загружался и был полностью рабочим.

Чиним cron

Nextcloud использует специальный фаил cron.php для того чтобы инициировать такие процессы как сканирование фаилов, музыки, очистку мусора и другие. Желательно выполнять этот фаил каждые 5-10 минут.

Используя NextCloud в докере из коробки к сожалению эта фича не работает и приходится использовать режим AJAX, который выполняет фаил cron.php при загрузке каждой страницы. Это создаёт дополнительную нагрузку на сервер.

Мы делегируем выполнение этого функционала, штатному cron. Для этого сначала установим его

sudo apt install cron

Проверим что он запущен и работает

sudo systemctl status cron

nextcloud cron runing

Мы будем запускать наше задание от root поэтому пишем

sudo crontab -e

В самую нижнюю строчку добавляем наше задание

*/5 * * * * sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/cron.php

nextcloud crontab -e

Сохраняем и выходим. Ждём 5 минут и проверяем результат

nextcloud cron success

Обновление Nextcloud

Периодически для Nextcloud выходят обновления, рассмотрим как правильно обновиться.

Внимание! Все обновления Nextcloud стоит делать последовательно, не перескакивая через версию. Например если у Вас была версия 21.x.x то чтобы обновиться на версию 23.x.x необходимо сначала обновить nextcloud до версии 22.x.x и только потом уже до 23.x.x !

Переходим в директорию с nextcloud

cd /app/nextcloud

Тушим контейнер

sudo docker-compose down

Посмотрим на структуру фаилов и директорий

ls

nextcloud update filestructure

Создаём папку, куда свалим нашу предыдущую рабочую версию

mkdir old

Скопируем в эту директорию все фаилы от предыдущей рабочей версии

sudo cp -r DB docker-compose.yml nextcloud nextcloud.ini old

Редактируем фаил docker-compose.yml заменив в нём версию образа nextcloud на более новую. Версии можно посмотреть в DockerHub

nano docker-compose.yml

nextcloud update compfile

Поднимаем контейнер с новой версией

sudo docker-compose up -d

Открываем Nextcloud в браузере. Нас приветствует мастер обновления.

nextcloud update wizard

Запускаем обновление

nextcloud update wizard 2

Ожидаем какое то время. В результате визард предложит перейти в nextcloud, что завершит процедуру обновления.

nextcloud update wizard 3

Кстати на скрине видно что были отключены некоторые плагины. В действительности после того как я перешёл в облако, все эти плагины были включены и работали, несмотря на то что в сообщении написано что они не совместимы.

Обновление на новую версию завершено.

Полезные команды

Рассмотрим специальные служебные команды для NextCloud. Все эти команды подаются в качестве параметров на occ.php

Во всех приведённых ниже командах не забудьте заменить имя контейнера nextcloud-23 на своё

Плагины

Отобразить список плагинов

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:list

Установить плагин

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:install files_mindmap

Удалить плагин

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:remove files_mindmap

Включить плагин. Например Activity

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:enable activity

Отключить плагин. Например Activity

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:disable activity

Обновить все плагины (либо вместо —all указать нужный плагин)

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:update —all

Получить полный путь папки с плагином. Например плагина Mind Map

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:getpath files_mindmap

Пользователи

Отключить юзера

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ user:disable testuser

Включить юзера

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ user:enable testuser

Удалить юзера

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ user:delete testuser

Etc

Произвести сканирование на предмет наличия новых фаилов

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ files:scan —all

Произвести поиск недостоющих индексов в бд

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ db:add-missing-indices

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

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ maintenance:mode —on

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

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ maintenance:mode —off

Отобразить список доверенных доменов

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ config:system:get trusted_domains

Добавить доверенный домен. В поле value вписываем ip либо домен

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ config:system:set trusted_domains 2 —value=http://127.0.0.1

Выполнить cron.php

sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/cron.php

Остальные команды можно найти тут

На этом всё. Все молодцы кто до сюда дошёл и у кого всё получилось!

Ошибка 504 Gateway time out. Ты слишком медленный

Ошибка 504 Gateway Timeout — это код состояния HTTP, который означает, что один сервер не получил своевременный ответ от другого сервера, к которому он обращался, при попытке загрузить веб-страницу или выполнить другой запрос браузера.

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

Обратитесь к разделу «Исправление ошибок 504 на вашем собственном сайте», чтобы узнать о некоторых вещах, которые стоит рассмотреть.

Ошибка 504 Gateway Timeout может появиться в любом интернет-браузере, в любой операционной системе и на любом устройстве. Это означает, что можно получить ошибку 504 Gateway Timeout на вашем телефоне или планшете на Android или iPhone, в Safari на Mac, в Chrome на Windows 10 (или 8, или 7,…) и т. д.

Как вы могли увидеть ошибку 504

Отдельные веб-сайты могут настраивать отображение ошибок «тайм-аут шлюза», по другому, но вот наиболее распространенные формулировки, которые вы увидите:

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

Причины ошибки 504 Gateway Timeout

В большинстве случаев ошибка 504 Gateway Timeout означает, что другой сервер отвечает столько времени, что его срабатывает выходит отведенное время — «тайм-аут», вероятно веб сервер, которому вы обращаетесь не работает или работает неправильно.

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

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

Как исправить ошибку 504

Исправление 504 ошибок на вашем сайте

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

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

В частности, в WordPress сообщения 504: Время ожидания истекло иногда возникают из-за поврежденных базы данных. Установите WP-DBManager и попробуйте функцию «Восстановить БД», затем «Оптимизировать БД» и посмотрите, поможет ли это.

Кроме того, убедитесь, что ваш файл HTACCESS правильный, особенно если вы только что переустановили WordPress.

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

Больше способов увидеть ошибку 504

Ошибка 504 тайм-аута шлюза при получении в Центре обновления Windows создает код ошибки 0x80244023 или сообщение WU_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT.

В программах на базе Windows, которые имеют доступ к Интернету, ошибка 504 может отображаться в небольшом диалоговом окне или окне с ошибкой HTTP_STATUS_GATEWAY_TIMEOUT и / или с запросом истекло время ожидания сообщения шлюза.

Менее распространенная ошибка 504 — время ожидания шлюза: прокси-сервер не получил своевременного ответа от вышестоящего сервера, но устранение неполадок (см. Выше) остается тем же.

Ошибки типа 504 Gateway Timeout

Ряд сообщений об ошибках аналогичен ошибке 504 Gateway Timeout, поскольку все они провляются на стороне сервера. Включают в себя Ошибку 500 Internal Server, Bad Gateway 502 и Unavailable 503 Service.

Существуют также коды состояния HTTP, которые не на стороне сервера, а на стороне клиента, как, например, ошибка 404 Not Found. Также существует несколько других, которые вы можете увидеть на нашей странице HTTP Ошибки кода состояния.

Что означает ошибка сервера 504 Gateway Time Out и как ее исправить

Ошибка сервера 504

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

Сообщения, кодирующиеся в формате 5хх, говорят о проблеме на стороне сервера, например, когда невозможно выполнить запрос из-за нарушения связи между несколькими серверами. Ошибка 504 Gateway Time Out не является распространенной, но это не значит, что на нее не стоит обращать внимания, особенно владельцу сайта. Рассмотрим некоторые причины возникновения данной ошибки и способы ее устранения как на стороне обычного посетителя, так и администратором веб-ресурса.

Ошибка 504 Gateway Time Out – это код состояния HTTP, который появляется, когда в течение заданного периода времени один сервер не получает своевременный ответ от другого сервера, который действует как шлюз или прокси.

Описания ошибки могут иметь различную форму:

Наличие дополнительного словесного описания помогает конкретизировать причину возникновения сбоя.

Производительный хостинг в подарок при заказе лицензии 1С-Битрикс

Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год хостинга – специально для сайтов на 1С-Битрикс.

Что делать посетителю сайта при возникновении ошибки 504

Итак, вы столкнулись с появлением на экране сообщения «error 504». Не спешите уходить с сайта, ведь возникновение сбоя может говорить о неправильной работе вашего браузера или даже наличии более серьезных проблем на уровне пользовательского софта. Попробуйте произвести довольно простые действия, чтобы убедиться, что с вашим программным обеспечением и настройками все в порядке.

Если после проведения всех вышеозначенных рекомендаций любая ошибка, в т. ч. 504 Gateway Time Out, продолжает возникать регулярно, обратитесь в техподдержку проблемного интернет-ресурса.

Решение проблем с появлением ошибки сервера 504 администратором веб-ресурса

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

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

Почти все ошибки с кодом 5хх, возникающие из-за невозможности обработки определенного количества запросов, поступающих на сервер, решаются методом апгрейда железа (использованием высокопроизводительного хостинга) либо оптимизацией работы программного обеспечения. Второй способ зависит от вида движка, на котором создан конкретный сайт. При использовании условно-бесплатных программ (WordPress, OpeneCart и других) все проблемы придется решать на уровне администрирования, с привлечением конкретного веб-программиста, разработавшего данный сайт. Если баги возникают на платных платформах (1С-Битрикс, UMI. CMS, NetCat CMS), напишите об ошибке 504 Gateway Time Out в техподдержку разработчика. Отправить сообщение о проблеме следует и разработчикам платных скриптов, если они установлены на вашем сайте, и вы считаете, что сбои возникают по причине их некорректного исполнения.

Вот некоторые причины, приводящие к возникновению ошибки 504 Gateway Time Out

Еще одна возможная причина возникновения ошибки 504 – исполняемый скрипт не укладывается в отведенный лимит времени. Это бывает, когда скрипт обращается к другим сайтам либо просто выполняет тяжелую операцию, например, строит поисковый индекс.

Рекомендации по устранению ошибки 504 Gateway Time Out методами администрирования сайта

Ошибка 504 Gateway Time Out может быть вызвана недавними изменениями или обновлениями на сайте. Если после отката к состоянию, предшествующему изменениям, баг исчез, следует найти конкретное действие, повлекшее возникновение ошибки. Для этого необходимо проверить журнал ошибок соответствующей CMS. Пользователи WordPress могут включить журналирование ошибок в файле wp-config. php добавлением следующих строк:

Все возникающие варианты ошибок будут записаны в файле wp-contents/debug. log.

Для проверки работоспособности плагинов и расширений попробуйте отключить те, которые вызывают подозрение как источники возникновения ошибки 504. В первую очередь это касается устаревших скриптов, но причиной могут оказаться и обновления. Если проблема исчезла, далее следует найти некорректный плагин или дополнение и устранить или исправить его. Один из способов улучшения работы исполняемого скрипта – увеличить значение параметра PHP max_execution_time или облегчить скрипт.

При использовании CDN для более быстрого получения контента, в частности CloudFlare, который работает как CDN и как сервис предотвращения негативных последствий от DDoS, вы можете столкнуться с двумя типами ошибок 504. В случае возникновения проблемы на стороне CloudFlare лучшим решением будет связаться с поддержкой CloudFlare или отключить его. Второй вариант – когда сбой возникает на стороне хостинг-провайдера. В этой ситуации также необходимо обратиться в службу поддержки хостера.

Часто ошибку 504 можно видеть на серверах, где используется VPS-хостинг и установлен Nginx в качестве фронтенда и Apache в качестве бэкенда. Для устранения проблемы в Apache можно увеличить значение timeout по умолчанию в файле httpd. conf:

Также увеличить лимит в max_execution_time в php. ini:

После внесения изменений следует перезапустить Apache. Ошибка 504 Gateway Time Out должна исчезнуть.

Аналогичным образом проблема с появлением ошибки HTTP 504 решается пользователями Nginx. Попробуйте увеличить такие параметры в файле /etc/nginx/conf. d/timeout. conf:

Также рекомендуется увеличить max_execution_time в php. ini:

Далее перезапустите Nginx и откройте сайт.

Более простым решением устранения данной проблемы является использование панели управления сервером.

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

Например, в бесплатной панели управления Vesta Control Panel достаточно внести изменения в раздел «Сервер» и навсегда забыть о возможности возникновения ошибок на сайте.

Ошибка ответа сервера 504 Vesta Control PanelИ далее внести соответствующие изменения.

Ошибка ответа сервера 504 Vesta Control Panel

Изменение php. ini в VestaCP

Аналогичным способом проблема устраняется и при использовании альтернативных панелей управления хостингом – Ajenti, CentOS Web Panel, ISPmanager и других.

Если вы считаете, что появление 504 Gateway Timeout вызвано превышением лимита использования ресурсов серверного железа, оптимальным решением будет аренда выделенного сервера или VPS. Когда ваш сайт уже размещен на виртуальном хостинге, но ни одна из рекомендаций не привела к исправлению error 504, обратитесь к хостинг-провайдеру. В этом случае подробно опишите причины, которые, как вы полагаете, привели к появлению сбоя.

Заключение

В данной статье мы рассмотрели основные причины возникновения ошибки HTTP 504 Gateway Timeout и популярные способы устранения неполадки. Уверен, некоторые администраторы веб-ресурсов сталкивались с подобными проблемами, выходящими за рамки приведенных примеров и рекомендаций.

Источники:

https://creditam. ru/stati/oshibka-504

https://timeweb. com/ru/community/articles/chto-oznachaet-oshibka-504-gateway-time-out-i-kak-ee-ispravit

Print Friendly, PDF & Email

Задача:

Выявить причину возникновения ошибки “504 Gateway Time-out” и найти варианты решения

—————————————————————

Ошибка появилась при попытке обновить nextcloud при помощи веб-интерфейса.

Дословно ошибка “504 Gateway Time-out”, означает, что превышено время ожидания ответа от сервера. Из сообщения понятно, что используется веб-сервер nginx. В эту сторону и будем копать. Авторизуемся на сервере при помощи SSH и собираем информацию:

root@cloud:/ # uname -a
FreeBSD cloud 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC  amd64

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

root@cloud:/ # last
ncuser       pts/0    192.168.1.231         Mon Apr 27 00:59   still logged in
ncuser       pts/0    192.168.1.231         Sun Apr 19 19:07 - 01:37  (06:30)
ncuser       pts/0    192.168.1.231         Sun Apr 19 15:12 - 15:28  (00:16)
ncuser       pts/0    192.168.1.231         Sat Apr 18 01:26 - 02:20  (00:53)

Проверяем 10 самых ресурсоёмких приложения в данный момент

root@cloud:/ # top -n 10
last pid: 24968;  load averages:  0.44,  0.32,  0.26  up 34+05:36:03    01:06:28
51 processes:  1 running, 49 sleeping, 1 stopped
CPU:  2.0% user,  0.0% nice,  0.5% system,  0.0% interrupt, 97.5% idle
Mem: 857M Active, 5269M Inact, 618M Laundry, 1115M Wired, 579M Buf, 262M Free
ARC: 2105K Total, 808K MFU, 1158K MRU, 32K Anon, 18K Header, 86K Other
     216K Compressed, 1846K Uncompressed, 8.55:1 Ratio
Swap: 1024M Total, 673M Used, 351M Free, 65% Inuse

  PID USERNAME    THR PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
24958 root          1  23    0    58M    21M select   0   0:19   5.96% rsync
  984 mysql        37  20    0  1470M  1148M select   1 262:08   0.00% mysqld
  787 redis         4  20    0    17M  5296K kqread   2  86:46   0.00% redis-server
51562 www           1  52    0   265M    54M accept   2  29:22   0.00% php-fpm
52711 www           1  52    0   265M    56M accept   0  28:38   0.00% php-fpm
  120 root          3  20    0    33M  4164K select   0  28:37   0.00% vmtoolsd
  808 www           1  20    0    29M  9240K kqread   1  23:55   0.00% nginx
52426 www           1  52    0   329M   118M accept   0  23:18   0.00% php-fpm
51412 www           1  29    0   329M   122M accept   3  22:51   0.00% php-fpm
52712 www           1  21    0   329M    75M accept   0  20:34   0.00% php-fpm

Из всей информации видно, что мало swap. Если в нормальном состоянии используется 65%, есть большой шанс, что при большей нагрузки памяти не хватает. Проверим ещё раз информацию о SWAP

root@cloud:/ # swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/da0s1b       1048544   689440   359104    66%
root@cloud:/ # swapinfo -h
Device          1K-blocks     Used    Avail Capacity
/dev/da0s1b       1048544     673M     351M    66%
root@cloud:/ #

Ищем сообщения об ошибках в системе

root@cloud:/ # dmesg | grep swap
swap_pager_getswapspace(31): failed
swap_pager_getswapspace(16): failed
root@cloud:/ #
root@cloud:/ # cat /var/log/messages | grep swap
Apr 24 23:10:57 cloud kernel: swap_pager_getswapspace(31): failed
Apr 24 23:10:57 cloud kernel: swap_pager_getswapspace(16): failed

Проверяем сколько установлено оперативной памяти на сервере

root@cloud:/ # sysctl hw.physmem
hw.physmem: 8549543936
root@cloud:/ # grep memory /var/run/dmesg.boot
real memory  = 8589934592 (8192 MB)
avail memory = 8274640896 (7891 MB)
VMware memory control driver initialized
root@cloud:/ # sysctl -n hw.physmem | awk '{ byte =$1 /1024/1024/1024; print byte " GB" }'
7.96238 GB
root@cloud:/ #

Логично, что исходя из формулы “swap=2*ОЗУ” раздел SWAP должен быть 16 GB. Но не факт что при памяти в 128 GB, необходимо устанавливать SWAP в 256 GB. Это спорный и всегда открытый вопрос.

Смотрим информацию о дисках и имеющихся разделах.

ot@cloud:/ # df -H
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/da0s1a      20G     17G    1.0G    94%    /
devfs           1.0k    1.0k      0B   100%    /dev
/dev/da1p1      4.8T    2.6T    1.8T    59%    /mnt/da1p1
zroot/docker    3.9G     24k    3.9G     0%    /usr/docker
zroot           3.9G     24k    3.9G     0%    /zroot
root@cloud:/ # swapctl -lhs
Device:            Bytes      Used:
/dev/da0s1b         1.0G       673M
Total:              1.0G       673M
root@cloud:/ # gpart show
=>      63  41942977  da0  MBR  (20G)
        63         1       - free -  (512B)
        64  41942976    1  freebsd  [active]  (20G)

=>       0  41942976  da0s1  BSD  (20G)
         0  39845888      1  freebsd-ufs  (19G)
  39845888   2097088      2  freebsd-swap  (1.0G)

=>        40  9663676336  da1  GPT  (4.5T)
          40  9663676336    1  freebsd-ufs  (4.5T)

root@cloud:/ #

Виртуальный системный диск имеет размер 20 GB. Так как это виртуальный сервер на ESXi, заходим в панель администрирования ESXI и увеличиваем его до 30 GB. После сервер необходимо перезагрузить.

Подключаемся и проверяем

root@cloud:/ # gpart show
=>      63  62914497  da0  MBR  (30G)
        63         1       - free -  (512B)
        64  41942976    1  freebsd  [active]  (20G)
  41943040  20971520       - free -  (10G)

=>       0  41942976  da0s1  BSD  (20G)
         0  39845888      1  freebsd-ufs  (19G)
  39845888   2097088      2  freebsd-swap  (1.0G)

=>        40  9663676336  da1  GPT  (4.5T)
          40  9663676336    1  freebsd-ufs  (4.5T)

Расширяем место в разделе FreeBSD и проверяем проделанное.

root@cloud:/ # gpart resize -i 1 da0
da0s1 resized
root@cloud:/ # gpart show da0
=>      63  62914497  da0  MBR  (30G)
        63         1       - free -  (512B)
        64  62914496    1  freebsd  [active]  (30G)

root@cloud:/ #

И так на данный момент имеем SWAP размеров в 1 GB, который будем увеличивать до 8 и остальное место отдадим для системы.

Отключаем SWAP

root@cloud:/ # swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/da0s1b       1048544        0  1048544     0%
root@cloud:/ # swapoff /dev/da0s1b
root@cloud:/ # swapinfo
Device          1K-blocks     Used    Avail Capacity
root@cloud:/ #

Удаляем SWAP и проверяем

root@cloud:/ # gpart delete -i 2 da0s1
da0s1b deleted
root@cloud:/ # gpart show
=>      63  62914497  da0  MBR  (30G)
        63         1       - free -  (512B)
        64  62914496    1  freebsd  [active]  (30G)

=>       0  62914496  da0s1  BSD  (30G)
         0  39845888      1  freebsd-ufs  (19G)
  39845888  23068608         - free -  (11G)

=>        40  9663676336  da1  GPT  (4.5T)
          40  9663676336    1  freebsd-ufs  (4.5T)

root@cloud:/ #

Редактируем vi /etc/fstab

vi /etc/fstab

комментируем строку относящуюся к SWAP

# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/da0s1a     /               ufs     rw      1       1
#/dev/da0s1b    none            swap    sw      0       0
/dev/da1p1      /mnt/da1p1      ufs     rw      0       0
#/dev/da2p1     /mnt/da2p1      ufs     rw      0       0

Перезагружаемся в “2. Boot Single user”

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

Увеличиваем размер диска до 22G

gpart resize -i 1 -a 4k -s 22G da0s1

Создаём свап на оставшемся свободном диске

 gpart add -t freebsd-swap -a 4k da0s1

Убираем изменения в файле /etc/fstab и перезагружаемся. Если не получилось, перезагружаемся и тогда изменяем fstab и ещё раз перезагружаемся.

Проверяем что всё сделано правильно

root@cloud:/ # swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/da0s1b       8388576        0  8388576     0%
root@cloud:/ # gpart show
=>      63  62914497  da0  MBR  (30G)
        63         1       - free -  (512B)
        64  62914496    1  freebsd  [active]  (30G)

=>       0  62914496  da0s1  BSD  (30G)
         0  46137344      1  freebsd-ufs  (22G)
  46137344  16777152      2  freebsd-swap  (8.0G)

=>        40  9663676336  da1  GPT  (4.5T)
          40  9663676336    1  freebsd-ufs  (4.5T)

root@cloud:/ #

Другие статьи

Понравилась статья? Поделить с друзьями:
  • Ошибка при сборке установке проекта во время выполнения этапа qmake
  • Ошибка при сборке развертывании проекта qt
  • Ошибка при самотестировании телефона обратитесь к поставщику nokia e52
  • Ошибка при рутировании kingo root
  • Ошибка при реструктуризации базы данных 1с