在守护进程模式下运行 Django 时,我遇到了权限问题。阅读此处https://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets我认为解决方案是配置 WSGISocketPrefix
问题是我的 centos 服务器上找不到 /var/run/wsgi。
我能找到最接近的东西是:/etc/httpd/run/httpd.pid
我如何找到 wsgi 的安装位置?
或者我可以将 WSGISocketPrefix 设置为等于什么其他值?
答案1
从您提供的链接;
该目录应该是只有“root”用户才有写入权限的目录,或者,如果不以“root”身份启动 Apache,则应以启动 Apache 的用户身份启动。
这是他们给出的唯一要求。您可以使用满足这些要求的现有路径,也可以创建新路径。
文件/etc/httpd/run/httpd.pid
适用于 Red Hat 及其衍生版本下的 Apache。此位置在 中定义/etc/httpd/conf/httpd.conf
。(如果此位置发生更改,PIDFILE
则/etc/sysconfig/httpd
必须更新 以匹配。)
ServerRoot "/etc/httpd"
...
PidFile run/httpd.pid
我会继续将其设置WSGISocketPrefix
为与 Red Hat 位置相同的路径。但是,如果您愿意,您应该能够使用/var/run/wsgi
。您只需要自己创建目录并分配权限。
答案2
一个选项是用来repoquery -l mod_wsgi
查看哪些文件放在哪里。
[root@APPS ~]# repoquery mod_wsgi
mod_wsgi-0:3.2-7.el6.i686
[root@APPS ~]# repoquery -l mod_wsgi
/etc/httpd/conf.d/wsgi.conf
/usr/lib/httpd/modules/mod_wsgi.so
/usr/share/doc/mod_wsgi-3.2
/usr/share/doc/mod_wsgi-3.2/LICENCE
/usr/share/doc/mod_wsgi-3.2/README
它是 yum-utils 包的一部分。