我正在使用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.
答案 0 :(得分:4)
您的Apache安装可能设置为以SECURE
权限模式运行。这意味着在处理请求之前,Apache子进程进程是分叉的并且权限被删除,在这种情况下,这只是尝试将请求代理到mod_wsgi守护进程。这样做的结果是它无法连接到守护进程的套接字,因为它设置了所有权以匹配原始Apache子进程进程,然后才删除权限。
这是显而易见的,因为错误消息在普通用户范围内uid
而非特殊apache
或nobody
用户。
要修复它,您需要修改WSGIDaemonProcess
指令配置并添加选项:
socket-user=#3708
或:
socket-user=username
其中username
替换为uid
3708
的用户的实际名称。
由于最近Apache的CPanel配置发生了变化,似乎需要添加此选项。
答案 1 :(得分:0)
有时套接字用户设置不起作用。 由于找不到 WSGISocketPrefix 路径
,可能会发生这种情况如果是VPS:
WSGISocketPrefix / var / run / wsgi
如果您在共享主机中:
WSGISocketPrefix ../../ var / run / wsgi
谢谢