我在 Apache 上加载了 mpm_prefork 和 mpm_itk(在 CentOS 上)。Ahttpd -M | grep mpm
显示以下内容:
mpm_itk_module (shared)
mpm_prefork_module (shared)
我的虚拟主机配置有以下指令:
# Run as User
<IfModule mpm_itk_module>
AssignUserId someuser someuser
php_value session.save_path /home/someuser/session
</IfModule>
httpd -t
返回 OK 并且 httpd 服务正常启动,没有任何错误。
但是,当我从 someuser.mydomain.com 运行 phpinfo() 时,我看到以下内容:
Apache 仍然在主用户和组下继续运行。
我该如何修复/调试?
谢谢。
答案1
phpinfo() 的输出具有误导性。mpm_itk 很可能确实以正确的用户身份执行代码。
如果您在 php 脚本中调用 get_current_user(),您将看到它不是由 apache 执行,而是由脚本的所有者/配置的用户执行。执行 system(id) 调用也是一样。