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

时间:2011-04-09 02:12:25

标签: php apache

如何知道我的php5是在suphp下运行的?

2 个答案:

答案 0 :(得分:3)

您可以找到当前脚本在哪个用户标识下运行:

print_r( posix_getpwuid(posix_getuid()) );

这会告诉您它是apache / www-data还是特定的用户帐户。

答案 1 :(得分:2)

如果安装了POSIX扩展(在共享主机上不常见),一个选项是创建一个新文件,然后检查uid / { {1}}它是用:

创建的
gid

现在,仅数字可能没用,但它们可以作为指导。

如果UID为99,则用户PHP正在file_put_contents('./tmp.txt', 'Stuff!'); echo "File UID is: ", fileowner('./tmp.txt'), ', GID is: ', filegroup('./tmp.txt'); 运行,这意味着没有suPHP。如果UID是33,那可能是用户nobody,这也意味着没有suPHP。

如果UID只是超过 9000 500或1000,那么你很有可能在suPHP下。如果它的方式超过500或1000,那么你很可能处于suPHP之下。

可能能够真正阅读www-data并检查那里的UID,但这很粗鲁。

但是,最佳选择可能会检查/etc/passwd。 suPHP可能会留下正在运行的线索,或者可能有其他环境变量可供您查看。例如,Apache的phpinfo不可能是suPHP,所以如果你看到PHP运行为mod_php,你当然不是suPHP。