diff --git a/docs/services/vm-205/nextcloud.md b/docs/services/vm-205/nextcloud.md index 04b0515..e898006 100644 --- a/docs/services/vm-205/nextcloud.md +++ b/docs/services/vm-205/nextcloud.md @@ -12,6 +12,7 @@ | **Хранилище** | `/mnt/cloud/data` (отдельный диск) | - [🤖 Роль Ansible](../../ansible/roles/nextcloud.md) *(заглушка на будущее)* +- [Быстрая Диагностика](быстрая-диагностика-nextcloud) ## 📋 Описание @@ -442,6 +443,76 @@ free -h | `SSL ошибка в браузере` | Самоподписанный сертификат внутри контейнера | Довериться сертификату в браузере или проверить настройку NPM | | `Память заканчивается` | Мало RAM + отсутствие swap | Добавить swap: `fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile` | +# 🛠️ Быстрая диагностика Nextcloud + +Набор команд для экспресс-проверки состояния сервера. Выполняйте последовательно от пользователя `root`. + +```bash +# Проверка монтирования диска с данными и свободного места +df -h /mnt/cloud + +# Проверка наличия и корректности симлинка на data-директорию +readlink /var/www/nextcloud/data + +# Проверка статуса веб-сервера и PHP-процессора +systemctl is-active nginx php8.3-fpm + +# Проверка, кто слушает порты 80/443 (конфликты, занятые порты) +ss -tlnp | grep -E ':(80|443)' + +# Проверка синтаксиса конфигурации nginx +nginx -t + +# Проверка статуса Nextcloud (установлен, режим обслуживания, версия) +sudo -u www-data php /var/www/nextcloud/occ status + +# Автоматическое исправление метаданных и очистка кэша +sudo -u www-data php /var/www/nextcloud/occ maintenance:repair + +# Просмотр последних ошибок веб-сервера +tail -n 20 /var/log/nginx/error.log + +# Просмотр последних событий в логе Nextcloud +tail -n 20 /mnt/cloud/data/nextcloud.log +``` + +## 📋 Интерпретация результатов + +| Команда | Норма | Тревожный сигнал | +|---------|-------|------------------| +| `df -h /mnt/cloud` | Видна ФС, есть свободное место | Точка не примонтирована, использование `100%` | +| `readlink /var/www/nextcloud/data` | `/mnt/cloud/data` | Пусто, ошибка «Нет такого файла», неверный путь | +| `systemctl is-active nginx php8.3-fpm` | `active` (для обеих служб) | `inactive`, `failed`, активна только одна служба | +| `ss -tlnp \| grep -E ':(80\|443)'` | `nginx` на портах `80` и `443` | `apache2`, `php-fpm` на портах, или вывод пуст | +| `nginx -t` | `syntax is ok`, `test is successful` | `emerg`, `error`, `failed` в выводе | +| `occ status` | `installed: true`, `maintenance: false` | `maintenance: true`, ошибки подключения к БД | +| `occ maintenance:repair` | Завершается без `Fatal`/`Exception` | Ошибки БД, прав доступа, повреждённые таблицы | +| `tail -n 20 /var/log/nginx/error.log` | Пусто или только `warn` при старте | `Permission denied`, `502 Bad Gateway`, `connect() failed` | +| `tail -n 20 /mnt/cloud/data/nextcloud.log` | Последние записи уровня `info`/`debug` | `Fatal`, `Exception`, `DatabaseException` | + +## 💡 Рекомендации по устранению типовых проблем + +| Симптом | Вероятная причина | Решение | +|---------|-------------------|---------| +| Нет доступа к данным, `500 Internal Server Error` | Потерян симлинк или отвалился диск | `ln -sfn /mnt/cloud/data /var/www/nextcloud/data` + проверка `df -h` | +| Сайт не открывается, `Connection refused` | Nginx или PHP-FPM не запущены | `systemctl restart nginx php8.3-fpm` | +| Конфликт портов, nginx не стартует | На портах 80/443 висит Apache или другой процесс | `apt purge apache2` или смена порта в конфиге | +| Ошибки прав доступа в логах | Сменился владелец после расширения диска/восстановления | `chown -R www-data:www-data /mnt/cloud/data` + `chmod 750/640` | +| `Maintenance mode: enabled` | Nextcloud вошёл в режим обслуживания после обновления или ошибки | `sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off` | + +## 📎 Контекст окружения (для быстрой диагностики) + +```text +Тип установки: Native (Debian/Ubuntu, LXC) +Веб-сервер: Nginx (Apache удалён) +PHP: 8.3-FPM (сокет /run/php/php8.3-fpm.sock) +Домен: nc.zailon.ru +SSL: /etc/nginx/ssl/cert.pem, cert.key +Nextcloud root: /var/www/nextcloud +Data directory: /mnt/cloud/data (симлинк из /var/www/nextcloud/data) +Диск данных: /dev/sdb1, ext4, ~150GB, точка монтирования /mnt/cloud +Логи: Nginx /var/log/nginx/error.log, Nextcloud /mnt/cloud/data/nextcloud.log +``` ## 🔐 Безопасность ### Настройки для продакшена