Журнал GET запросов и строк запросов в PHP (Apache) - PullRequest
0 голосов
/ 02 января 2019

У нас есть приложение PHP, работающее на Apache, и мы хотим регистрировать все запросы API (параметры GET +).

Я видел этот пост Лучший способ записать POST-данные в Apache? , где написано, что «запросы GET будут простыми, потому что они будут в журнале apache».

Однако, когда я смотрю в наших журналах, их там нет.Какие настройки журнала сервера мне нужны для записи запросов GET + строка запроса?Нет упоминания о том, как это сделать в https://httpd.apache.org/docs/2.4/logs.html

1 Ответ

0 голосов
/ 02 января 2019

GET-запрос регистрируется в файле журнала доступа. Прочитайте предоставленную вами документацию, особенно важна часть Access Log. Ваш хост Apache должен быть настроен на что-то вроде:

LogLevel        info
ErrorLog        "/private/var/log/apache2/{hostname}-error.log"
CustomLog       "/private/var/log/apache2/{hostname}-access.log" combined

GET запросы могут быть найдены в /private/var/log/apache2/{hostname}-access.log

Простой и быстрый способ сделать это в целях отладки - написать функцию, которая регистрирует данные POST.

function logPost() {
    if (isset($_POST && !empty($_POST) {
        foreach($_POST as $key => $value) {
            error_log('=== _POST REQUEST ===');
            error_log('_POST: '.$key.' => '.$value);
        }
        // OR serialise the data but this is less readable
        error_log('=== _POST REQUEST ===');
        error_log(serialise($_POST));
    }
}

POST-запросы затем можно найти в /private/var/log/apache2/{hostname}-error.log

...