Как я могу проанализировать журнал ошибок Apache в PHP?

Эта ошибка 400 может произойти, если вы не настроили правило маршрутизации для хоста внешнего интерфейса. Правило маршрутизации должно быть явно добавлено для этого внешнего интерфейса. См. , это .

Вы можете получить глубокое понимание из , как Front Door сопоставляет запросы с правилом маршрутизации , и проверить, соответствует ли действительный путь запроса в правиле маршрутизации хосту внешнего интерфейса.

Если не определен пользовательский путь пересылки , то запрос передается соответствующему бэкенду в настроенном пуле бэкэндов как есть. Иначе, путь запроса обновляется в соответствии с определенным пользовательским путем пересылки, а затем пересылается на серверную часть. Вы можете проверить правильность forwarded path, установив custom forwarding path.

enter image description here

Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.

update

Для настройки входной двери для статического хранилища в Azure. Вы можете выбрать custom origin, используя статический URL-адрес веб-сайта вместо источника хранилища BLOB-объектов. Более того, если вы хотите, чтобы URL был переписан с использованием регулярного выражения. Вы можете использовать Azure CDN для этого статического веб-сайта вместо лазурной входной двери. Вы можете переопределить поведение HTTP с помощью механизма правил Azure CDN , поэтому для этого необходимо использовать расширенное предложение Azure CDN от Verizon.

Дополнительная информация: Обслуживание статических сайтов с помощью BLOB-объекта Azure и CDN

17
задан GEOCHET 1 October 2008 в 19:49
поделиться

4 ответа

Существует несколько вещей рассмотреть сначала:

  1. Во-первых, у Вашего пользователя PHP не может быть доступа к файлам журнала Apache.
  2. , Во-вторых, PHP и Apache не собираются говорить Вам, где упомянутый файл журнала,
  3. Наконец, файлы журнала Apache могут стать довольно большими.

Однако, если ни один из них не применяется, можно использовать нормальные команды чтения файла, чтобы сделать это. Самый легкий способ получить последнюю ошибку

$contents = @file('/path/to/error.log', FILE_SKIP_EMPTY_LINES);
if (is_array($contents)) {
    echo end($contents);
}
unset($contents);

существует, вероятно, лучший способ сделать это, которое не хрюкает память, но я оставлю это как осуществление для читателя.

Один последний комментарий: PHP также имеет ini, устанавливающий для перенаправления ошибок PHP к файлу журнала: error_log = /path/to/error.log

можно установить это в httpd.conf или в .htaccess файле (если у Вас есть доступ к одному), использование php_flag нотации:

php_flag error_log /web/mysite/logs/error.log
13
ответ дан 30 November 2019 в 12:45
поделиться

для кого-либо еще ищущего демонстрационный сценарий, я бросил что-то вместе, он имеет основы:

<?php
exec('tail /usr/local/apache/logs/error_log', $output);
?>
<Table border="1">
    <tr>
        <th>Date</th>
        <th>Type</th>
        <th>Client</th>
        <th>Message</th>
    </tr>
<?
    foreach($output as $line) {
        // sample line: [Wed Oct 01 15:07:23 2008] [error] [client 76.246.51.127] PHP 99. Debugger->handleError() /home/gsmcms/public_html/central/cake/libs/debugger.php:0
        preg_match('~^\[(.*?)\]~', $line, $date);
        if(empty($date[1])) {
            continue;
        }
        preg_match('~\] \[([a-z]*?)\] \[~', $line, $type);
        preg_match('~\] \[client ([0-9\.]*)\]~', $line, $client);
        preg_match('~\] (.*)$~', $line, $message);
        ?>
    <tr>
        <td><?=$date[1]?></td>
        <td><?=$type[1]?></td>
        <td><?=$client[1]?></td>
        <td><?=$message[1]?></td>
    </tr>
        <?
    }
?>
</table>
11
ответ дан 30 November 2019 в 12:45
поделиться

существуют груды сценариев PHP, которые делают это, просто сделайте поиск Google примеров. если Вы хотите к самокрутке, это - ничего более сложного, чем чтение никакого другого файла. просто удостоверьтесь, что Вы знаете, что местоположение Ваших файлов журнала (определенный в httpd.conf файле) и эти форматирует Ваши файлы журнала , находятся в. формат также определяется в httpd.conf

3
ответ дан 30 November 2019 в 12:45
поделиться

Вы попробовали biterScripting? Я - системный администратор, и я использовал для парсинга журналов. Это - сценарии стиля univx. biterScripting.com-> Бесплатная загрузка.

-1
ответ дан 30 November 2019 в 12:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: