我有一个使用 Apache2 和 mod_wsgi 在我的服务器上运行的 Django 应用程序。我还让 WSGI 在守护进程模式下运行。因此,每次重新启动 apache2 服务时都会出现一个小问题。
在 /var/run/
中创建了一个新的 sock 文件,这不是问题本身,但由于这个原因,新文件由 root 创建并赋予所有者 www-data ,我提供文件的用户不是所有者。
我的问题:
如何创建新的 sock 文件,创建时以 user 作为所有者,以 www-data 作为组?
最佳答案
根据@GrahamDumpleton 的帮助,我能够解决这个问题。
问题
使用错误的 wsgi 安装 (libapache2-mod-wsgi
) 导致在我的 apache conf 文件中尝试运行 WSGIDaemonMode
时出现问题。我无法使用 socket-user=user
选项,因此在服务重启时创建新的 sock 文件时我没有收到 Permission denied
问题。
解决方案
对我来说,我在我的服务器上全新安装了 Debian 8,因为我在我的文件中乱搞了很多东西试图解决这个问题,所以我觉得这是最好的。全新安装后,使用 pip install mod_wsgi
能够正常工作(在我的全新安装之前无法工作,即使在安装 python 2.7.13 之后也是如此)——很奇怪,我知道...
因为我正确安装了 mod_wsgi
,所以我能够使用 socket-user=user
选项来解决我的问题。
关于python - Django:使用 mod_wsgi 创建的 SOCK 文件的权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47542260/