在守护进程模式下运行 django 时出现权限问题。在这里阅读https://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets我认为解决方案是配置 WSGISocketPrefix
问题是 /var/run/wsgi
在我的 centos 服务器上找不到。
我能找到的关闭的东西是:/etc/httpd/run/httpd.pid
如何找到wsgi
的安装位置?
或者我可以将 WSGISocketPrefix 设置为什么其他值?
最佳答案
对于 Ubuntu 14.0.4 LTS、Django11.1、Python 3.6.1 和 mod_wsgi-4.5.15,它对我来说工作如下:
Apache 显示以下错误:
- 503 服务不可用
Apache 错误日志显示如下:
- [wsgi:error] [pid 5411] (2)No such file or directory: [client 1.2.3.4:12345] mod_wsgi (pid=5411): 无法连接到 '/var 上的 WSGI 守护进程 'mywsgi'/run/apache2/wsgi.5403.0.1.sock' 作为 uid=123 的用户。
请注意,我以不同于默认 www-data 的用户身份运行 WSGI。这通过 WSGIDaemonProcess 中的“用户”进行了更改。
解决方案:
- 在/etc/apache2/apache2.conf的底部,添加:
WSGISocketPrefix/var/run/apache2/wsgi
- 重启Apache后,可以ls -la查看/var/run/apache2下的锁文件:
apache2.pid
wsgi.5017.0.1.sock
来源:
关于django - 如何配置 WSGISocketPrefix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29754226/