如何知道我的php5在suphp下运行?
您可以找到当前脚本在哪个用户id下运行:
print_r( posix_getpwuid(posix_getuid()) );
这将告诉您是apache
/www-data
还是特定的用户帐户。
如果您没有安装POSIX扩展(在共享主机上不常见),一个选项是创建一个新文件,然后检查它创建的uid
/gid
:
file_put_contents('./tmp.txt', 'Stuff!');
echo "File UID is: ",
fileowner('./tmp.txt'),
', GID is: ',
filegroup('./tmp.txt');
现在,数字本身可能没有用处,但它们可以作为指导方针。
如果UID为99,则用户PHP以nobody
的方式运行,这意味着没有suPHP。如果UID为33,则可能是用户www-data
,这同样意味着没有suPHP。
如果UID比9000 500或1000稍微大一些,那么您就有很小的可能处于suPHP之下。如果远远大于500或1000,那么您很可能在suPHP下。
您可能能够实际读取/etc/passwd
并检查那里的uid,但这是不礼貌的。
phpinfo
。suPHP可能会留下它正在运行的线索,或者您可以查看其他环境变量。例如,Apache的mod_php
不可能是suPHP,所以如果您看到PHP作为mod_php
运行,那么您肯定不是suPHP。