【发布时间】:2014-07-25 01:54:55
【问题描述】:
我有一台标准的 ubuntu 14.04 机器。我每天都在用户mh00h 下使用它。我有兴趣将这台机器用作生产服务器。如何管理 Django 和 Nginx 的文件权限?
Nginx 当前配置为在www-data:www-data 下运行。这最大限度地降低了机器其余部分受到损害的风险。 Django/gunicorn 同样应该在mh00h 以外的用户下运行。但是 gunicorn 应该在哪个用户下运行呢? nobody,对吗?
下一步:我将所有 Web 开发文件存储在 /home/mh00h/development 下。归mh00h 所有。 /home/mh00h/development/project1 (plus all dir/files but /media and /static)?归mh00h 所有。我遵循 django 两勺最佳实践来创建一个项目目录,其中包含静态文件。当然,Nginx 现在无法访问/home/mh00h/development/project1/project1/static,因为所有这些父目录都属于mh00h,而不是www-data(./static 属于www-data)。
更复杂的是,virtualenvwrapper 在/home/mh00h/.virtualenvs/ 下创建了我的虚拟环境。
我不愿放弃两个独家新闻的最佳实践并将/static 分别存储在/var/www 中,因为我希望所有这些目录都很好地打包在一起,以便以后轻松传输到其他服务器。另外,如果我将自己与两个勺子的做法进行比较,我会感到很混乱。
- 我的静态文件应该存储在哪里?
- django 特定文件应该存储在哪里?
- 哪些用户/组应该能够访问 1 和 2 中的哪一个?
- virtualenvwrapper 环境应该存储在哪里?
- 这些位置应该有什么权限?
谢谢。
【问题讨论】: