Я пытаюсь настроить свое приложение Django для использования uWSGI и Nginx. Я следую этому руководству: http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
Я нахожусь на шаге «Использование сокетов Unix вместо портов». Я пробовал делать
uwsgi --socket mysite.sock --wsgi-file test.py
но это не сработало (как предполагал учебник). я смотрел на
/var/log/nginx/error.log
и он сказал
2015/05/11 00:20:17 [crit] 1964#0: *13 connect() to unix:///home/a/Documents/CMS/CMS.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: 192.168.174.131, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///home/a/Documents/CMS/CMS.sock:", host: "127.0.0.1:8000"
Когда я делаю
uwsgi --socket mysite.sock --wsgi-file test.py --chmod-socket=666
это работает, но когда я делаю
uwsgi --socket mysite.sock --wsgi-file test.py --chmod-socket=664
он снова выдает ошибку «Permission Denied». В руководстве говорилось: «Возможно, вам также придется добавить своего пользователя в группу nginx (которая, вероятно, является www-data) или наоборот, чтобы nginx мог правильно читать и писать в ваш сокет». Мой суперпользователь для Ubuntu - customUser. я сделал
sudo usermod -a -G www-data customUser
для добавления пользователя в группу www-data. Затем я поместил это в свой файл CMS_uwsgi.ini (расположенный в папке моего проекта Django):
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/a/Documents/CMS
# Django's wsgi file
module = CMS.wsgi
# the virtualenv (full path)
home = /home/a/.virtualenvs/CMS
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = /home/a/Documents/CMS/CMS.sock
uid = customUser
gid = www-data
# ... with appropriate permissions - may be needed
chmod-socket = 664
# clear environment on exit
vacuum = true
но по-прежнему выдавал ошибку «Permission Denied», когда я это делал:
uwsgi --ini CMS_uwsgi.ini
Я также попытался изменить свой файл CMS_uwsgi.ini на:
uid = www-data
gid = www-data
# ... with appropriate permissions - may be needed
chmod-socket = 664
но он по-прежнему возвращает ошибку «Permission Denied». Есть идеи, почему?
Обратите внимание, что в руководстве упоминается: «Возможно, вам также придется добавить своего пользователя в группу nginx (которая, вероятно, является www-data) ИЛИ VICE-VERSA». Я добавил своего пользователя в www-data, но не знаю, что такое «наоборот».