uWSGI上的权限被拒绝问题

时间:2016-01-23 00:31:41

标签: django virtualenv uwsgi virtualenvwrapper

我在Ubuntu 13.04服务器上设置了一个基于django的项目。 我可以在uWSGI配置文件上使用'root'特权来运行这个项目。 但是当我尝试使用标准的'www-data'用户运行时,我得到了:

chdir(): Permission denied [uwsgi.c line 1851] 

我已将项目的所有权及其相应的virtualenv文件夹更改为“www-data”,但再次出现此错误!

我的uWSGI配置文件是这样的:

[uwsgi]

# Django-related settings
# the base directory (full path)
chdir           = /root/my_project
# Django's wsgi file
module          = my_project.wsgi
# the virtualenv (full path)
home            = /root/.virtualenvs/my_project

# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
socket          = unix:///root/my_project/server.uwsgi.sock

chmod-socket    = 666
uid     = www-data
gid     = www-data


# clear environment on exit
vacuum          = true

有什么不对?

2 个答案:

答案 0 :(得分:2)

您的chdirhomesocket指令均使用/root/作为基础,即root用户' svhome目录,因此其他用户无法访问那里。也可能存在一些SELinux限制。

尝试为您的项目创建一个单独的文件夹,即在/home//home/www-data)中,确保您的www-data用户有权访问它和权限,并移动您的项目和venv在那里,然后更改设置(包括socket),然后重试。

答案 1 :(得分:0)

可以通过在用户名前面添加0(0www-data)来轻松解决。
如果您不关心安全性,请授予它root权限。