Я нахожусь в чужой Linux-системе и должен определить пользователя, на котором работает apache (а также php).
Цель: мне нужно получить владельца скрипта (это не проблема, поскольку я могу использовать SplFileInfo) и сравнить его с владельцем процесса apache.
Я открыт для любых альтернативных предложений.
С уважением, Марио
Изменить: Дополнительная информация:
Скрипт представляет собой генератор миниатюр, который использует файл XML для генерации больших пальцев больших изображений. Сценарий должен создавать папки и записывать файлы. Поскольку я не могу влиять на конфигурацию php, и у меня нет доступа к оболочке, это нужно сделать очень тихо. Процесс создания останавливается через исключение и отправляет сообщение об ошибке. Поскольку большинство функций php не могут генерировать исключения при отказе, мне нужны некоторые ручные проверки для определения среды, в которой я находится. Поэтому мне нужно, чтобы пользователь apache сравнивал его с каким-то каталогом или файловым владельцем.
Вы можете вызвать функцию php exec для выполнения whoami :
<?php echo exec('whoami'); ?>
см. posix_getuid () и posix_getpwuid ()
Здесь есть несколько сложных ответов.
Это работает для меня:
$user = getenv('APACHE_RUN_USER');
Не уверен, что это просто новая вещь, которая была добавлена в apache, поскольку этот вопрос был задан, но это определенно существует сейчас.
phpinfo сбрасывает много системной информации. Для установки apache2 существует раздел, в котором отображаются идентификаторы пользователя и группы apache. Попробуйте создать php-скрипт, который имеет только одну строку, вызов phpinfo () и его открытие в вашем веб-браузере.