我在NGINX + uWSGI中安装了Django。我能够在我当前登录的用户下运行正常(在question的帮助下,我问了几天)但现在我想运行uwsgi --ini uwsgi.ini
作为限制 - 访问用户。
这是我到目前为止所做的事情:
1.创建没有登录访问权限且没有主目录的用户djangouser
。
2.将用户nginx
添加到群组djangouser
中
3.将我的django文件放入/mnt/django
目录,并将django
的文件权限更改为drwxrwx--- djangouser djangouser
(递归)
4.更改conf文件以匹配文件位置
uwsgi.ini文件
[uwsgi]
chdir=/mnt/django/project/awssite
module=awssite.wsgi
home=/mnt/django/project
master=true
processes=2
uid=djangouser
gid=djangouser
socket=/mnt/django/djangosocket/awssite.socket
chmod-socket
vacuum=true
当我尝试运行uwsgi --ini uwsgi.ini
时,这是我得到的错误
[uWSGI] getting INI configuration from uwsgi.ini
*** Starting uWSGI 2.0.12 (64bit) on [Thu Feb 18 00:18:25 2016] ***
compiled with version: 4.8.3 20140911 (Red Hat 4.8.3-9) on 01 February 2016 04:17:11
os: Linux-4.1.13-19.31.amzn1.x86_64 #1 SMP Wed Jan 20 00:25:47 UTC 2016
nodename: ip-10-200-1-89
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/ec2-user
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /mnt/django/project/awssite
chdir(): Permission denied [core/uwsgi.c line 2586]
chdir(): Permission denied [core/uwsgi.c line 1608]
注意:当我将登录用户添加到djangouser
群组时,uwsgi --ini uwsgi.ini
运行正常,我可以加载django页面。
我不确定在哪里添加权限以允许此功能。在uwsgi.ini中添加sudo chown-socket=djangouser:djangouser
也不起作用。
我很感激帮助:)
答案 0 :(得分:3)
如果您想以特定用户身份运行uWSGI,则只有两个选项:
答案 1 :(得分:1)
您可以在uwsgi ini文件中创建用户并设置uid / gid属性。
[uwsgi]
...
uid=myuser
gid=mygroup
我使用uwsgi版本2.0.12-debian进行了测试,并使用python3 virtualenv为一个简单的cgi应用程序工作。