我在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
有什么不对?
答案 0 :(得分:2)
您的chdir
,home
,socket
指令均使用/root/
作为基础,即root
用户' svhome目录,因此其他用户无法访问那里。也可能存在一些SELinux限制。
尝试为您的项目创建一个单独的文件夹,即在/home/
(/home/www-data
)中,确保您的www-data
用户有权访问它和权限,并移动您的项目和venv在那里,然后更改设置(包括socket
),然后重试。
答案 1 :(得分:0)
可以通过在用户名前面添加0(0www-data)来轻松解决。
如果您不关心安全性,请授予它root权限。