如何知道我的php5是在suphp下运行的?
答案 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。