问题的简短版本:
get_current_user();
什么区别 和exec('whoami');
?
问题的长版本:
我得到这个错误:
file_put_contents( PDOErrors.txt ):未能打开stream:权限被拒绝…
所以我做了一些调查,似乎要解决这个问题,我需要更改文件PDOErrors.txt的CHMOD
设置为777。
但是,我的问题是关于别的。 在这个过程中,我意识到我不清楚Apache,PHP和MySQL中user
的概念。
get_current_user()
“获取当前PHP脚本的所有者的名字” 链接 exec('whoami')
返回“拥有正在运行的php / httpd进程的用户名” 链接 get_current_user()
,我得到我的firstnamelastname
,这是我的Mac上的我的帐户名称。 exec('whoami')
,我得到daemon
。 所以…
firstnamelastname
和daemon
之间有什么关系? firstnamelastname
还是daemon
? root
account factor的概念在这里的任何地方吗? 编辑:我更新这反映,这不是我必须改变CHMOD设置的folderxyz 。 我不得不改变文件PDOErrors.txt的设置
OP在这里:为了将来的参考,我在这里提出了一个Linux平台的并行问题(附带直观的解释): https : //stackoverflow.com/questions/31389892/why-is-the-output- WWW的数据function于一身的病例和根合另一
get_current_user()
(应该)返回文件的所有者,在这种情况下是firstnamelastname
。 有报道说这个功能在平台之间是不一致的。 因此,我不相信它的输出。 daemon
是Apache正在运行的用户。 ls -la
来查找该文件所属的用户和组。 firstnamelastname
( +rw
)。 daemon
和PHP文件+r
(read)具有+rx
(执行和读取)。 在我的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