Я хочу получить домашний каталог текущего пользователя сценария (nginx / www / apache и т. Д.) В PHP. я использую
$output_message = shell_exec('echo ~'); var_dump($output_message);
Он корректно работает на моем локальном сервере, на экземплярах Amazon. Но он выводит только «~» на виртуальный хостинг.
Может быть, у вас есть рабочее решение для получения домашней директории текущего пользователя?
заранее спасибо
Я основал рабочее решение:
$user = posix_getpwuid(posix_getuid())
Это возвращает массив, например
Array ( [name] => username [passwd] => ******** [uid] => 501 [gid] => 20 [gecos] => Full Name [dir] => /home/username [shell] => /bin/bash )
Таким образом, чтобы получить доступ к домашнему директорию пользователя, это $user['dir']
.
Используйте $_SERVER['HOME']
или вы пытаетесь
$home = getenv("HOME");
Примечание. Для этого необходимо выполнить сценарий через командную строку.
На большинстве обычных серверов эти демоны (apache, nginx и т. Д.) Не имеют реального «домашнего каталога».
Если вы считаете «виртуальный хостинг», это было бы невозможно, так как для каждого пользователя может быть только один домашний каталог, но у него есть несколько хостов на каждого демона.
Я предполагаю, что вы ищете, ist переменная среды DOCUMENT_ROOT (корневой каталог для текущих документов vhost).
$_SERVER['DOCUMENT_ROOT']