Вопрос или проблема
У меня есть два сервера Windows Server 2019 (в AWS), на которых работают Apache httpd 2.4.62, PHP 8.3.11 и SQL Server. Один из них предназначен для разработки/тестирования, другой – для производства.
Обычно я оставляю сеансы удаленного рабочего стола открытыми на обоих серверах и слежу за журналами PHP и Apache.
php.ini:
log_errors=On
error_log="C:\Windows\temp\php-errors.log"
Из-за программных ошибок журнал ошибок PHP существовал, и я следил за тем, чтобы увидеть, произошли ли дальнейшие ошибки после внесения исправлений.
Несколько дней назад файл php-errors.log исчез на обоих серверах в одну и ту же дату. Файл больше не существует.
Я не вижу никаких признаков взлома. Ищу в интернете, не могу найти ни одной упоминания о том, что файл журнала ошибок пропал.
Какие-нибудь предложения относительно того, что могло произойти, или как расследовать эту проблему? К сожалению, у меня не была включена политика аудита Windows Server, так что я не могу использовать это, чтобы выяснить, кто удалил файл.
Кроме того, в журнале событий Windows нет ничего необычного, так же как и в журнале сервера Apache, и в журналах доступа Apache.
Ответ или решение
Пропажа файла журнала ошибок PHP на Windows Server 2019
Проблема исчезновения файла журнала ошибок PHP является достаточно неординарной и требует комплексного подхода к диагностике. Рассмотрим подробно возможные причины и шаги, которые помогут устранить данную проблему.
Описание проблемы
На двух серверах Windows Server 2019, которые работают под управлением Apache httpd 2.4.62 и PHP 8.3.11, файл журнала ошибок PHP, расположенный по адресу C:\Windows\temp\php-errors.log
, исчез в одно и то же время на обоих серверах. Использование RCA (Root Cause Analysis) позволит выявить возможные источники проблемы и предотвратить её повторение в будущем.
Возможные причины исчезновения файла
-
Удаление файла пользователями:
- Возможно, файл был случайно удален одним из пользователей, имеющим доступ к серверам через удаленный рабочий стол.
-
Системные очистки:
- Некоторые утилиты или политики, такие как очистка временных файлов, могут автоматически удалять файлы в папке
C:\Windows\temp
. Необходимо проверить, не были ли активированы сторонние программы или политики, способные влиять на временные папки.
- Некоторые утилиты или политики, такие как очистка временных файлов, могут автоматически удалять файлы в папке
-
Настройки PHP:
- Проверьте файл настроек
php.ini
. Убедитесь, что указан правильный путь к файлу журнала и что он доступен для записи службой Apache и PHP. Если папка, в которой лежит лог, изменена или у нее изменены разрешения, это может вызвать проблемы с записью.
- Проверьте файл настроек
-
Ограничения по размеру файла:
- В настройках PHP можно определить максимальный размер файла журнала, после достижения которого новый лог может не создаваться. Убедитесь, что такие ограничения не установлены.
-
Конфликты приложений:
- Если на серверах работают другие приложения, такие как антивирусы или системы безопасности, они могут ошибочно классифицировать файл журнала как нежелательный и удалить его.
-
Ошибки в коде PHP:
- Если в коде присутствуют фатальные ошибки, и файл журнала не может быть создан, необходимо провести аудит кода на предмет исключений и ошибок.
Рекомендации по расследованию
-
Настройка журналирования:
- Включите аудит файловой системы. Добавьте журналирование на события "удаление" для папки
C:\Windows\temp
. Это поможет вам впоследствии отследить, кто удалял файл.
- Включите аудит файловой системы. Добавьте журналирование на события "удаление" для папки
-
Мониторинг активности файлов:
- Используйте инструменты мониторинга, такие как Process Monitor от Sysinternals, чтобы отслеживать операции с файлом журнала в реальном времени.
-
Проверка на вирусы и вредоносные программы:
- Выполните полное сканирование каждого сервера надежными антивирусными решениями, чтобы исключить возможность вредоносного вмешательства.
-
Настройка резервного копирования:
- Настройте регулярное резервное копирование файлов журналов, чтобы можно было восстановить информацию в случае её потери в будущем.
-
Патчи и обновления:
- Убедитесь, что все компоненты (Windows, Apache, PHP) обновлены до последних стабильных версий, чтобы избежать известных уязвимостей.
-
Документация изменений:
- Ведите документацию по всем изменениям в конфигурациях серверов и приложений, что поможет быстро отслеживать причины возникновения таких проблем в будущем.
Заключение
Отсутствие файла журнала ошибок PHP на ваших серверах требует не только тщательного расследования, но и внедрения профилактических мер для избежания подобных ситуаций. Оно может быть вызвано как человеческим фактором, так и системными процессами, поэтому важно организовать мониторинг и аудит систем. Следуя вышеприведенным рекомендациям, вы сможете восстановить целостность и стабильность серверной инфраструктуры.