#Симптом и границы применимости
Обновление панели или веб-стека может изменить расположение журналов, имена виртуальных хостов, ротацию или способ хранения в systemd. Отсутствие старого файла само по себе не означает отключённое журналирование.
Эта инструкция относится к конкретному сайту в панели управления хостингом, когда его обслуживают Nginx, Apache, PHP-FPM или их сочетание. Названия разделов и доступность SSH зависят от установленной панели и прав пользователя; шаги, которых нет в вашем интерфейсе, выполняет администратор сервера.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Изменился путь в шаблоне панелиНовый access_log указывает в другую директорию | Путь в эффективной конфигурации отличается от прежнего | Обновить настройки просмотра и резервного копирования |
| Ротация и сжатиеАктивный журнал переименован или уже архивирован | Есть записи в .1/.gz, но нет в старом файле | Найти действующий дескриптор/путь |
| Логи уходят в journald/контейнерВ файловой системе пусто, события видны через journalctl | Сервис запущен, но файл не создаётся | Использовать штатный канал журналов |
#Пошаговая диагностика и исправление
- Зафиксируйте сервис и момент обновленияПосмотрите в панели версию и дату обновления, домен и прежний путь к access/error. Не создавайте пустой лог-файл по старому адресу в надежде, что сервер начнёт в него писать.
- Найдите путь из эффективной конфигурацииДля Nginx посмотрите директивы access_log и error_log вместе с server_name; для Apache — CustomLog/ErrorLog. Выполняйте поиск только на своём сервере и не выкладывайте полную конфигурацию с секретами.Linux · Терминал (Bash)КомандаНужен sudoSSH с правами администратора; если Apache, используйте apachectl -S и изучите его файлы конфигурации.
sudo nginx -T 2>&1 | grep -E "access_log|error_log|server_name"
- Проверьте обычную ротацию журналовВ найденной папке посмотрите текущий файл, .1 и сжатые архивы. Чтобы прочитать старые записи, используйте less/zless, не распаковывая их в публичную папку сайта.
- Проверьте системный журналЕсли файл отсутствует, найдите имя службы и изучите несколько свежих записей в journald. Учитывайте, что некоторые панели запускают несколько экземпляров Nginx, Apache и PHP.
- Для типового systemd с сервисом nginxLinux · Терминал (Bash)КомандаНужен sudoДля типового systemd с сервисом nginx. При ином имени службы замените его; вывод может содержать частные адреса.
sudo journalctl -u nginx -n 50 --no-pager
- Сопоставьте панель и фактический файлПроверьте, ведёт ли кнопка просмотра журнала панели в текущий путь. Если нет, настройте путь средствами панели или сообщите о несовместимости её компонента; не создавайте символьные ссылки из приватных папок в публичные.
- Проверьте права доступа к журналуСервис должен иметь разрешение на запись, а пользователь панели — только на санкционированное чтение. Если журнал не создаётся из-за прав, исправьте владельца конкретного каталога через штатный механизм; не открывайте всем доступ.
- Сделайте контрольный запросОткройте одну тестовую страницу и проверьте по времени появление строки в действующем журнале. После обновления путей поправьте резервное копирование и мониторинг, чтобы они не продолжали читать старый файл.
#Проверка результата
Новый тестовый запрос виден в фактическом журнале, а панель, мониторинг и резервные задания используют действующее расположение.
#Если проблема осталась
Если сервер пишет в journald, настройте штатный экспорт при необходимости; если ошибки логирования фиксируются при старте, исправляйте конкретный каталог, а не выключайте журналы.
#Безопасный откат
Если после изменения ошибка усилилась, верните сохранённое значение только изменённого параметра и повторно проверьте конфигурацию используемого веб-сервера до применения. Не возвращайте всю базу или весь сервер из резервной копии, если достаточно откатить одну настройку. При отсутствии доступа к нужному уровню обратитесь к администратору с точными временем, адресом, кодом ответа и обезличенными фрагментами журналов.