我有一个 django 项目,正在将其从 dev-server 移至 apache。我已设法使用 mod_wsgi 获取该服务器,但它以 apache 身份运行。Mod_wsgi 文档说,如果 apache 以 root 身份运行,则可以以其他用户身份运行 mod_wsgi 进程。
问题 1:是否可以以不同的用户身份运行 mod_wsgi,而无需以 root 身份运行 apache?
Q2:如果上面的答案是否定的,我该如何让 apache 以 root 身份运行。我在 CentOS 6 机器上使用提供的存储库提供的 httpd 包。
答案1
Apache 每次在 RHEL 衍生版本(如 CentOS)上都以 root 身份启动。然后它使用 setuid 切换到 httpd.conf 中配置的用户/组。
来自 mod_wsgi文档:
请注意,虽然表示应该使用 WSGIDaemonProcess 指令创建守护进程,但是仍然需要使用 WSGIProcessGroup 指令来委托特定的 WSGI 应用程序在这些守护进程中执行。
还要注意的是,守护进程组的名称在整个服务器中必须是唯一的。也就是说,在不同的虚拟主机中不能使用相同的守护进程组名称。
可以提供给 WSGIDaemonProcess 指令的选项有:
用户=名称|用户=#uid