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

时间:2016-09-06 10:20:37

标签: django cpanel mod-wsgi

我正在使用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.

2 个答案:

答案 0 :(得分:4)

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

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

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

socket-user=#3708

或:

socket-user=username

其中username替换为uid 3708的用户的实际名称。

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

答案 1 :(得分:0)

有时套接字用户设置不起作用。 由于找不到 WSGISocketPrefix 路径

,可能会发生这种情况
  • 如果是VPS:

    WSGISocketPrefix / var / run / wsgi

  • 如果您在共享主机中:

    WSGISocketPrefix ../../ var / run / wsgi

谢谢