Если в Nextcloud появляется сообщение вида «Внутренняя ошибка сервера» или «произошла ошибка при проверке настроек сервера», это почти всегда означает: веб-сервер дошел до PHP, а дальше в процессе проверки/инициализации конфигурации случилась ошибка. Часто она выглядит «размытой» для пользователя, но в логах сервера есть прямой ответ - какой параметр, какой файл или какой компонент (база, кеш, окружение) подвел.

Ниже - понятный порядок действий, который обычно помогает без гаданий.

Быстрый чек: где именно ломается

Самый важный принцип

Не лечите “в целом”. Смотрите, на каком этапе ошибка возникает:
- при входе в админку/открытии страницы “проверка настроек”;
- при обновлении;
- сразу после правок config.php;
- только на конкретном сервере/в конкретной среде (например, после включения Redis или настройки php-fpm).

Что собрать сразу

В одном месте держите 3 вещи:
- содержимое /var/www/nextcloud/config/config.php (аккуратно, без лишних правок);
- логи веб-сервера (nginx) и PHP-FPM;
- логи Nextcloud.

Обычно Nextcloud пишет в:
- data/nextcloud.log (если у вас так настроено),
или в журнал, настроенный для установки.

Для Nextcloud с nginx+php-fpm полезны системные логи:
- nginx: /var/log/nginx/error.log
- php-fpm: /var/log/php*/fpm*/error.log (путь зависит от версии)

Идея простая: ищите строку с моментом времени, когда вы открываете страницу, где “проверка настроек сервера” падает.

Исправления по логам: самые частые причины

Конфиг config.php стал не тем

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

Признаки:
- после обновления Nextcloud до новой ветки (например, 27.x) появился Internal Server Error;
- вы правили config.php вручную;
- часть строк выглядит “почти правильно”, но есть синтаксические мелочи (кавычки, запятые, экранирование).

Что делать:
- открыть config.php и убедиться, что это валидный PHP-файл (не HTML, не следы копипаста, не пустые значения);
- проверить, что вы не смешали старые и новые ключи конфигурации (в новых версиях Nextcloud некоторые настройки могли поменяться).

Если лог показывает ошибку синтаксиса PHP или исключение в момент чтения конфига - лечится правкой config.php до корректного синтаксиса.

php в php-fpm и окружение: классическая ловушка

Иногда проверка настроек Nextcloud вызывает getenv() или ожидает переменные окружения. В режиме php-fpm PATH, TMP и т.п. могут не подхватываться так же, как в php-cli.

Симптомы:
- проверка/страницы в админке падают, но в терминале те же команды ведут себя иначе;
- в логах Nextcloud/ PHP встречаются признаки пустого окружения.

Что сделать:
- в пуле php-fpm раскомментировать переменные env[PATH], env[TMP], env[TEMP] (или добавить аналоги);
- перезапустить сервис php-fpm.

Пример (подставьте свою версию php):

sudo nano /etc/php/8.3/fpm/pool.d/www.conf

Находите строки вида:
;env[PATH] = ... и снимаете комментарий (убираете ;), после чего:

sudo systemctl restart php8.3-fpm

Memcache/Redis или кеширование: Nextcloud требует консистентности

Если включали кеш (APCu/Redis/Memcached) и теперь падает проверка настроек сервера, причина часто в одном из вариантов:
- расширение PHP для Redis/Memcached не установлено или не загружено;
- Nextcloud настроен на Redis, а сервис недоступен по адресу/порту;
- Redis работает, но php-fpm “не видит” нужное расширение;
- неверные параметры memcache.local, memcache.distributed, memcache.locking, список memcached_servers и т.д.

Что делать:
- проверить, что сервис кеша реально поднят;
- проверить, что соответствующее расширение PHP установлено и доступно именно для php-fpm.

Проверка сервиса Redis (пример):

sudo systemctl status redis-server

Для php-расширения обычно помогают команды уровня “есть ли модуль”, но проще ориентироваться на логи и phpinfo()/пакеты. Если у вас в логах видно исключение про Memcache/Redis, лечите это установкой нужного расширения и правильными ключами в config.php.

База данных после обновления: индексы/кодировки/utf8mb4

При обновлении Nextcloud к таким вещам становится чувствительнее:
- кодировка базы и таблиц;
- 4-байтовые символы (utf8mb4);
- индексы, которые Nextcloud ожидает.

Признаки в логах:
- ошибки про collation/charset;
- ошибки, связанные с ожидаемыми схемами/таблицами;
- ошибки выполнения SQL.

Что делать:
- перевести Nextcloud в maintenance mode, чтобы не ловить полурабочие состояния;
- выполнить нужные команды Nextcloud из occ (смотрим по ошибке в логах).

Maintenance mode:

sudo -u www-data php /path/to/nextcloud/occ maintenance:mode --on

Важное замечание: путь к occ зависит от расположения Nextcloud. Если у вас Nextcloud не в стандартном месте, замените /path/to/nextcloud/ на фактический путь.

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

Nginx/реверс-прокси и ограничения по размерам/заголовкам

Иногда “внутренняя ошибка сервера” возникает не из-за Nextcloud как такового, а из-за nginx-процесса (таймауты, буферизация, неверные заголовки), и Nextcloud уже “не доживает” до страницы проверки.

Например, для больших загрузок/выгрузок встречается ситуация, когда при работе как реверс-прокси обрывается скачивание. Тогда помогает настройка nginx, вроде:

proxy_buffering off;

Если ваши симптомы именно про операции с файлами (а не про падение страницы админки) - смотрите nginx error.log и временные ошибки в логах php-fpm/Nextcloud.

Пошаговый план, который стоит пройти всегда

Слой 1. Убедитесь, что проблема действительно серверная

1) Откройте страницу “проверка настроек сервера”, дождитесь ошибки.
2) Сразу посмотрите логи (время должно совпасть).
3) Возьмите из логов точный текст исключения.

Почти всегда по одной строке из лога можно понять, что чинить: Redis/APCu, синтаксис config.php, окружение php-fpm, кодировка БД, индексы, и т.д.

Слой 2. Не делайте “рандомные” правки config.php

Если вы уже трогали config.php, то:
- возвращайте параметры к ожидаемому формату;
- не оставляйте старые ключи, если они выглядят “подозрительно” для вашей версии Nextcloud.

Даже небольшой синтаксический недочет в config.php превращает страницу в Internal Server Error.

Слой 3. Когда есть риск несовместимых операций - maintenance mode

Если будете применять команды occ (конвертации индексов, bigint, encryption scan, repair/maintenance):
- включите maintenance mode,
- выполните команду,
- выключите maintenance mode.

Так вы снижаете шанс “половины” состояния, когда проверка настроек сервера снова падает на запросах пользователей.

Слой 4. Перезапуски и проверки после правок

После правок php-fpm / расширений / config.php не забывайте делать перезапуски там, где это требуется (обычно php-fpm и/или nginx).

Мини-таблица: что чинить, если в логах всплывает знакомое

Что указано в ошибке/контексте Типичная причина Что проверить в первую очередь
“memcache”, “Redis”, “Memcached” не то расширение php, или неверная конфигурация кеша наличие пакетов/модулей + корректность ключей в config.php + доступность сервиса
ошибки чтения config.php синтаксическая ошибка/битая правка валидность PHP-файла, кавычки/запятые, удалите лишние символы после редактирования
getenv(PATH)/пустое окружение в php-fpm env в пуле php-fpm не задан настройки www.conf + restart php-fpm
ошибки про charset/collation/utf8mb4 кодировка/состояние БД после обновления параметры кодировки + ожидаемые настройки Nextcloud
таймауты/разрывы через nginx прокси/буферизация/лимиты nginx error.log + корректность нужных директив

Источник истины - логи

Все “советы из интернета” работают только после того, как вы нашли первопричину в логах. Сообщение пользователю выглядит одинаково (“внутренняя ошибка сервера”), но причины разные: от неудачной правки config.php до несовпадения кеша или окружения php-fpm.

Если вы будете действовать по схеме:
- лог -> точная причина -> минимальная правка -> maintenance mode (если нужно) -> перезапуски,
то проблема с “проверкой настроек сервера” обычно решается быстро и без повторных кругов.

Полезные ссылки

  • Документация Nextcloud по occ и администрированию (официальная): https://docs.nextcloud.com/
  • Форум сообщества Nextcloud (типовые ошибки и разборы): https://help.nextcloud.com/