как узнать, что мой хост php5 работает под управлением suphp

#php #apache

#php #apache

Вопрос:

как узнать, что мой php5 работает под управлением suphp?

Ответ №1:

Вы можете узнать, под каким идентификатором пользователя выполняется текущий скрипт:

 print_r( posix_getpwuid(posix_getuid()) );
  

Это покажет вам, является ли это apache / www-data или конкретной учетной записью пользователя.

Ответ №2:

Если у вас не установлено расширение 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, это может быть user www-data , что опять же означает отсутствие suPHP.

Если UID всего на несколько больше 9000, 500 или 1000, то есть небольшая вероятность, что вы находитесь под управлением suPHP. Если это намного больше 500 или 1000, то вы вполне можете находиться под управлением suPHP.

Вы могли бы на самом деле прочитать /etc/passwd и изучить UID там, но это грубо.

Однако лучшим вариантом может быть проверка phpinfo . suPHP может оставлять подсказки о том, что он запущен, или могут быть другие переменные среды, на которые вы можете взглянуть. Например, Apache mod_php не может быть suPHP, поэтому, если вы видите, что PHP работает как mod_php , вы, конечно, не suphp’d.