#php #apache #logging #iis
#php #апач #Протоколирование #iis #apache
Вопрос:
Использование IIS 8.8 и PHP
Как я могу записывать ошибки приложения в файл в IIS? У меня это работает в моей среде localhost XAMPP, но, похоже, не работает при переходе на сервер IIS, в котором у меня мало опыта.
В моем приложении у меня есть файл config.php
, он включен на каждую страницу моего приложения и содержит следующее;
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'Off');
ini_set('log_errors', 1);
ini_set('error_log', 'C:inetpubwwwrootmy_applogserr_log');
ini_set('date.timezone', 'Europe/London');
?>
Однако ничего не регистрируется в err_log
— должен ли я изменить что-то еще в настройках IIS?
У меня будет несколько приложений на этом сервере, и я хотел бы настроить отдельные файлы журнала приложений для каждого из них, например
- C:inetpubwwwrootmy_applogserr_log
- C:inetpubwwwrootanother_applogserr_log
- C:inetpubwwwrootyet_another_applogserr_log
Ответ №1:
При развертывании приложения в IIS на сервере Windows IIS может записывать ошибки, связанные с ответами на http-запросы, такие как коды состояния ошибки и подробные сообщения об ошибках. Ошибки в вашем php-приложении (ошибки во время выполнения приложения) требуют настройки с помощью кода php или файла конфигурации, чтобы приложение могло выводить информацию об ошибках в указанный файл, и IIS не может записывать внутренние ошибки приложения.
Поэтому, если вы используете config.php файл для настройки файла журнала, который используется для записи http-ошибки, он не будет работать, потому что только файл web.config может настраивать IIS. Если он использовался только для записи ошибок в приложении, вам необходимо проверить код php или получить помощь на форумах, связанных с php.
Есть два способа записать ошибку в IIS.
- В модуле ведения журнала вы можете настроить папку журнала, формат записи журнала, назначение события журнала, перенос файла журнала. В итоговом файле журнала будет записано время получения запроса, IP-адрес запроса, URL-адрес запроса, код состояния и подкод состояния и т. Д.
- В модуле отслеживания запросов на отказ вы можете подробно записать весь процесс запроса и ответа.Когда запрос поступает в iis, в какой модуль он поступил, как модуль обработал запрос и результат обработки будут записаны. Это очень помогает в устранении неполадок
Комментарии:
1. Спасибо за этот подробный ответ. Так что в принципе это невозможно при использовании моей текущей конфигурации. Я нахожу удивительным, что в IIS нет способа записывать ошибки PHP, я думаю, мне следовало провести свое исследование и вместо этого использовать Apache, я буду знать в следующий раз!