Установка REMOTE_USER для логов apache с использованием php - PullRequest
3 голосов
/ 16 июня 2010

В mod_perl я могу сделать что-то вроде:

$r->user("username");

И тогда имя пользователя будет отображаться в разделе имени пользователя в журналах.

Есть ли способ сделать это в php? без необходимости изменять apache?

Редактировать : Пока я пробовал оба:

$_SERVER['REMOTE_USER'] = "username";
$_SERVER['PHP_AUTH_USER'] = "username";
apache_setenv('REMOTE_USER', "username")

без удачи

Edit2: Логи Apache имеют формат:

ipAddress REMOTE_USER IDENT datetime ... и т. Д.

Я пытаюсь установить REMOTE_USER, не используя apache mod_auth, но код php.

Ответы [ 3 ]

1 голос
/ 16 июня 2010

Это выглядит как вероятный вариант: apache_setenv ()

1 голос
/ 22 сентября 2010

Хитрость заключается в том, чтобы использовать apache_setenv () вместе с изменением вашего log_format для включения% {REMOTE_USER} e

Таким образом, вы в основном передаете удаленного пользователя как переменную среды и получаете это значение в log_format,Насколько я знаю, нет способа переопределить «исходную» переменную.

0 голосов
/ 16 июня 2010

Я полагаю, вы можете просто переопределить / предоставить переменную, установив требуемый суперглобальный объект, как и любую другую переменную. Как бы то ни было, быстрого пика в документации по PHP и переменной, о которой вы говорите, нет в списке:

http://www.php.net/manual/en/reserved.variables.server.php

Cheers, Alex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...