2016-01-23 3 views
0

Я установил проект на основе django на сервере Ubuntu 13.04. Я мог запустить этот проект с привилегиями «root» в файле конфигурации uWSGI. Но когда я пытаюсь запустить это с пользователем стандарт «WWW-данных», я получил:Разрешение на отказ от uWSGI

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

Я изменил собственность моего проекта и его соответствующую папку virtualenv на «WWW-данные», но получаю эту ошибку еще раз!

Мой 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

- это каталог 'chown''d другого пользователя? –

+0

Нет! дорогой @AaronLelevier. Все папки, упомянутые в файле uWSGI, которые я привез, «chown» принадлежат пользователю 'www-data', которые участвовали в группе' www-data' – AbdolHosein

ответ

1

Ваш chdir, home, socket директивы все используют /root/ в качестве своей базы, которая root каталог user'svhome и поэтому другие пользователи не имеют доступа там. Также могут быть некоторые ограничения SELinux.

Попытки создать отдельную папку для вашего проекта, то есть в /home/ (/home/www-data), убедитесь, что ваш www-data пользователь имеет доступ к нему и правам, и переместить свой проект и venv там, а затем измените настройки (в том числе socket) и попробуй еще раз.

+0

Что касается/root/вы правы, но я дал Разрешение на применение папок и их субконтента. – AbdolHosein

+0

Начиная с '/ root' сам? Потому что, если вы предоставили права на '/ root/my_project' и забыли'/root', это не поможет. Кроме того, поскольку я сказал, что есть неприятная вещь - контексты SELinux и т. Д., Поэтому мой совет остается прежним - перейдите в менее ограниченную папку, после чего вы также можете попытаться отключить SELinux, чтобы узнать, помогает ли это. – Nikita

+0

Я проверил папку с контейнером, он тоже имеет соответствующие разрешения ... – AbdolHosein

Смежные вопросы