Краткая версия вопроса:
В чем разница между
get_current_user();
а также exec('whoami');
?
Длинная версия вопроса:
И я получил эту ошибку:
file_put_contents (PDOErrors.txt): не удалось открыть поток: разрешение
отказано …
Итак, я немного поболтал, и, кажется, чтобы это исправить, мне нужно изменить CHMOD
настройки файла PDOErrors.txt до 777.
Однако мои вопросы о другом. В ходе этого процесса я понял, что не совсем понимаю концепцию user
в Apache, PHP и MySQL.
get_current_user()
«Получает имя владельца текущего скрипта PHP» Ссылка на сайтexec('whoami')
возвращается «имя пользователя, которому принадлежит запущенный процесс php / httpd» Ссылка на сайтget_current_user()
Я понимаю firstnamelastname
, который является именем моей учетной записи на моем Mac.exec('whoami')
, Я получил daemon
,Так…
firstnamelastname
а также daemon
?firstnamelastname
или же daemon
? root
учетная запись где-нибудь здесь?Изменить: я обновил это, чтобы отразить, что это не было folderxyz что мне пришлось изменить настройки CHMOD. Мне пришлось изменить настройки для файла PDOErrors.txt
OP здесь: для дальнейшего использования я поставил здесь параллельный вопрос для платформы Linux (с сопровождающим интуитивным объяснением того, что происходит): https://stackoverflow.com/questions/31389892/why-is-the-output-www-data-in-one-case-and-root-in-another
get_current_user()
(должен) вернуть владельца файла, который firstnamelastname
в этом случае. Однако сообщалось о проблемах, связанных с тем, что эта функция несовместима между платформами. Как таковой, я бы не стал доверять его выводу. daemon
пользователь Apache работает как.ls -la
в каталоге, в котором находятся ваши сценарии, чтобы найти пользователя и группу, к которой принадлежит файл.firstnamelastname
(+rw
).+rx
(выполнить и прочитать) для daemon
и для файла PHP, +r
(читать). На моей установке XAMMP они сделали это, установив все в htdocs
как общедоступный, таким образом daemon
могу читать, но не писать.htdocs
или же www
каталог. Он выполняет роль традиционного пользователя root в Unix.Вот некоторая информация о владельцах / группах файлов и владельце процесса:
host:~$ ls -l /Applications/XAMPP/xamppfiles/htdocs
drwxr-xr-x 3 root admin 4096 2015-01-01 00:01 .
drwxr-xr-x 3 root admin 4096 2015-01-01 00:01 ..
-rw-r--r-- 1 firstnamelastname admin 189 2015-01-31 20:45 index.php
host:~$ ps aux | grep httpd | head -n1
daemon 45204 0.0 0.1 2510176 10328 ?? S Tue11AM 0:01.38 /Applications/XAMPP/xamppfiles/bin/httpd -k start -E /Applications/XAMPP/xamppfiles/logs/error_log -DSSL -DPHP
Если вы хотите сделать файл доступным для записи пользователем демона, вы можете создать новую папку и назвать ее владельцем группы. admin
(так что вы можете использовать его тоже), и дать ему +rwx
для пользователя и группы, с +rx
для общественности:
host:~$ cd /Applications/XAMPP/xamppfiles/htdocs
host:htdocs$ mkdir some_dir
host:htdocs$ chmod 775 some_dir
Других решений пока нет …