gpt4 book ai didi

python - mod_wsgi - WSGIDaemonProcess 中的用户选项不起作用

转载 作者:行者123 更新时间:2023-11-30 23:26:54 27 4
gpt4 key购买 nike

我正在尝试将我的 wsgi 应用程序配置为在我的用户 ID 下运行。操作系统是Ubuntu 13.10。这是虚拟主机配置:

<VirtualHost *:80>

ServerName lz5.local
DocumentRoot /home/kompas/git/lz5/front-app

WSGIDaemonProcess lz user=#1000 group=#1000
WSGIApplicationGroup lz

<Directory /home/kompas/git/lz5>
AllowOverride None
Require all granted
</Directory>

LogFormat "%V %l %u %t \"%r\" %>s %b" common_vhost
CustomLog "/var/log/apache2/logzilla_access.log" common_vhost
ErrorLog "/var/log/apache2/logzilla_error.log"

WSGIScriptAlias /api /home/kompas/git/lz5/app.wsgi

</VirtualHost>

这是我的 app.wsgi:

(...imports...)

sys.stderr.write("My uid={}, gid={}, euid={}, egid={}".format(
os.getuid(), os.getgid(), os.geteuid(), os.getegid()))
sys.stderr.flush()

application = make_app()
application.debug = True

看起来工作正常:

[Wed Mar 12 09:55:45.059101 2014] [:info] [pid 25068:tid 139724309714816] mod_wsgi (pid=25068): Starting process 'lz' with uid=1000, gid=1000 and threads=15.

...但是在app.wsgi中uid没有改变:

[Wed Mar 12 09:55:49.457056 2014] [:error] [pid 25070:tid 139724094150400] My uid=33, gid=33, euid=33, egid=33

我还注意到,有一些 apache 进程组的 uid 正确设置为“kompas”(uid 1000),但这不是运行我的应用程序的进程组!

apache2(23368)─┬─apache2(25479,www-data)─┬─{apache2}(25526)
...
├─apache2(25480,www-data)─┬─{apache2}(25499)
│ ├─{apache2}(25500)
...
└─apache2(25478,kompas)─┬─{apache2}(25481)
├─{apache2}(25482)

但是我从 app.wsgi 获得的 pid 是 25480,而不是我期望的 25478。

有什么想法吗?

最佳答案

您缺少 WSGIProcessGroup 指令来告诉 mod_wsgi 在哪个守护进程进程组中运行您的应用程序。

去阅读:

您应该使用的是:

WSGIProcessGroup lz
WSGIApplicationGroup %{GLOBAL}

关于python - mod_wsgi - WSGIDaemonProcess 中的用户选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22346618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com