如何知道我的主机php5在suphp下运行


how to know my host php5 is running under suphp

如何知道我的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。