mod_wsgi无法连接WSGI守护程序进程

nid*_*hin 5 django mod-wsgi cpanel

我正在使用Easy apache 4,mod_wsgi和Python 3.5.当我在服务器中调用Django项目时,我收到以下错误:

(13)Permission denied: mod_wsgi (pid=24223): Unable to connect to WSGI daemon
process 'user123' on '/var/run/wsgi.8442.6.7.sock' as user with uid=3708.
Run Code Online (Sandbox Code Playgroud)

Gra*_*ton 7

您的 Apache 安装可能设置为以SECURE特权模式运行。这意味着 Apache 子工作进程在处理请求之前被分叉并删除了权限,在这种情况下,这只是尝试将请求代理到 mod_wsgi 守护进程。这样做的结果是它无法连接到守护进程的套接字,因为在删除权限之前,它的所有权设置为与原始 Apache 子工作进程匹配。

这很明显,因为错误消息uid在普通用户的范围内,而不是在特殊用户apachenobody用户的范围内。

要修复它,您需要修改WSGIDaemonProcess指令配置并添加选项:

socket-user=#3708
Run Code Online (Sandbox Code Playgroud)

或者:

socket-user=username
Run Code Online (Sandbox Code Playgroud)

其中,username被替换为与用户的实际名称uid3708

由于 Apache 的 CPanel 配置最近发生了变化,因此似乎需要添加此选项。