我正在用PHP编写一个简单的Web应用程序,需要对服务器上的目录具有写入权限,如果该目录不可写我想显示一条错误消息,说明将目录的所有者设置为谁网络服务器正在运行(例如,www-data,nobody),但由于大多数人不知道这一点,能够告诉他们将目录提交给谁是很好的。是否可以从PHP中找到它?
答案 0 :(得分:18)
<?php
echo exec('whoami');
?>
答案 1 :(得分:3)
我使用的快速技巧是将文件写入/tmp/
。它应该使用PHP进程使用的用户和组创建。
答案 2 :(得分:3)
在Unix平台上,如果安装或编译了posix扩展,即使安装了安全模式,此解决方案也可能正常工作。
$user = posix_getpwuid(posix_geteuid());
echo $user['name'];
文档为here。
答案 3 :(得分:2)
答案 4 :(得分:2)
如果在linux / unix上:
<?php
$temp = tmpfile();
print_r(posix_getpwuid(fileowner($temp)));
?>
答案 5 :(得分:0)
如果你可以运行一些bash,你可以使用whoami
或者你可以在/proc
答案 6 :(得分:0)
该错误消息在Windows服务器环境中崩溃。 “请确保Web服务器对目录具有写入权限”可能是更好的错误消息。
答案 7 :(得分:0)
在某些使用print( int('deadbeef', 16) )
>>> 3735928559
print( int('dead beef', 16) )
ValueError: invalid literal for int() with base 16: 'dead beef'
print( int('hello wolrd', 16) )
ValueError: invalid literal for int() with base 16: 'hello world'
print( int('helloworld', 16) )
ValueError: invalid literal for int() with base 16: 'helloworld'
或echo exec('whoami');
的服务器中
什么也不会返回,但是在每种情况下您都可以使用get_current_user
exec('whoami',$out); echo $out;