Каковы «правильные» настройки разрешений для сайта django, работающего на сервере apache2 - PullRequest
3 голосов
/ 14 января 2012

Я очень новичок в apache и django, поэтому извините, если этот вопрос прост. Я пытаюсь развернуть существующий сайт на сервере Apache. В настоящее время сайт все еще находится в разработке, поэтому я размещаю его только как виртуальный хост на моей локальной машине. Я использую модуль Django WSGI при развертывании. В файле конфигурации моего сайта у меня есть следующие псевдонимы:

Alias /media/ /home/tester/Desktop/siteRootDir/media
Alias /content/ /home/tester/Desktop/siteRootDir/content
WSGIScriptAlias /c /home/tester/Desktop/siteRootDir/deploy/site.wsgi

Когда я запускаю apache и захожу в localhost / c, я получаю ошибку (13) PermissionDenied в журнале apache. Чтобы обойти эту ошибку, я (глупо восхищенно) запустил

chmod -R 777 /home/tester/Desktop/siteRootDir

Я знаю, что это не способ решения проблемы, но я просто хотел, чтобы сайт работал, чтобы я мог продолжить его разработку.

Итак, мой вопрос: каковы правильные настройки разрешений для каталога siteRootDir и его подкаталогов, чтобы сайт работал, и я не выставляю ненужные файлы в каталоге.

Кроме того, я понимаю, что это не идеальная настройка, и я, скорее всего, столкнусь с проблемами при развертывании сайта в рабочей среде. Кто-нибудь может предложить лучший организационный подход к этому? Спасибо!

1 Ответ

1 голос
/ 14 января 2012

Максимально возможные разрешения: 0600 для файлов и 0700 для dir, а в качестве владельца - пользователь, владеющий процессами apache. Этот пользователь отличается в зависимости от ОС и разновидности (например, для OSX это www, для Debian / Ubuntu это www-data).

Это, вероятно, слишком сложно для сервера разработки. По крайней мере, вы хотели бы иметь возможность изменять все свои файлы с помощью вашей IDE текстового редактора, поэтому либо вы должны добавить ACL для себя (то есть пользователя, который редактирует файлы Django, шаблоны и статические файлы).

Кроме того, на рабочем сервере вы хотите, чтобы пользователь apache мог писать в каталоги, в которых хранится загруженный из Интернета контент. Это будет где-то в вашем разделе статических файлов (или на другом выделенном сервере статических файлов).

...