Имеется сабж.
Данный MPM позволяет отрабатывать под разными пользователями для разных vhost.Исходно апач работает по дефолту под www-data:
ps axu |grep apache
root 370987 0.0 0.0 227504 35032 ? Ss 09:40 0:00 /usr/sbin/apache2 -k start
www-data 370988 0.0 0.0 228060 16544 ? S 09:40 0:00 /usr/sbin/apache2 -k start
www-data 370989 0.0 0.0 228060 16544 ? S 09:40 0:00 /usr/sbin/apache2 -k start
www-data 370990 0.0 0.0 228072 16920 ? S 09:40 0:00 /usr/sbin/apache2 -k start
www-data 370991 0.0 0.0 228072 16920 ? S 09:40 0:00 /usr/sbin/apache2 -k start
все стандартно.Заведен vhost, у него в настройках:
AssignUserID www-root www-rootВсе работает - меняю у файлов владельца и группу на отличные от www-root - получаю форбидден, все логично.
Но вот phpinfo() упрямо показывает:
______
apache2handler
...
User/Group www-data(33)/33
______
т.е. говорит что он работает под www-data.Я было засомневался, но проверив созданием файла из php, он ожидаемо создается от www-root.
Почему php показывает другого пользователя??
Видимо особенность работы. Вы смотрите параметры контекста в котором работает sapi php (раздел apache2handler). mpm-itk для каждого нового соединения форкает процесс с setuid, подозреваю что контекст sapi к этому моменту уже инициализирован и информация показывается исходным данным родительского процесса. Вместо создания файла для просмотра актуального пользователя можно использовать exec('whoami') или print_r(posix_getpwuid(posix_geteuid()));
Чтоб разобраться подробнее надо курить https://github.com/php/php-src/blob/master/sapi/apache2handl... и mpm_itk.c
Пасиб, снаружи вроде все ок, отрабатывает. В дебри лезть не охота.
> Заведен vhost, у него в настройках:
> AssignUserID www-root www-root
> Все работает - меняю у файлов владельца и группу на отличные от
> www-root - получаю форбидден, все логично.чтобы апач работал от пользователя надо AssignUserID тоже менять. например так:
<IfModule mpm_itk_module>
AssignUserId jura12 jura12
</IfModule>