Django项目结构和总体位置

时间:2015-12-27 07:26:37

标签: linux django nginx virtualenv

对于我在Django中构建的俱乐部,我有一个非常测试版(可能是alpha版)的网站,但是现在是时候将后端改造成实际上非常实用的东西了。我保存了所有文件(旧代码,包括模板和Django配置),但我已经开始在Linode服务器上全新安装Ubuntu 14.04了。我想以正确的方式做到这一点,但我无法在网上以各种渠道提取“正确”的方式来做事。

如何为此项目设置正确的用户帐户?为了论证,让我们说Ed和Edna正在研究一个项目。 Ed和Edna都在服务器上有一个帐户。 Django代码是否存在于其中一个帐户中,它是否为自己获取帐户,还是在不需要帐户的地方完全存在于其他地方?

我听说过Python虚拟环境,但即使阅读了它们之后,我仍然不确定如果这个Web服务器专门用于本网站,为什么我会想要使用它。假设我想这样做,我是否可以从Ed的帐户安装它?埃德娜的?一个不同的帐户?虚拟环境的文件夹结构是否位于Ed或Edna的主文件夹中?一个不同的主文件夹?

关于Web服务器配置的最后一个问题(我熟悉nginx,这就是我将要使用的)。我应该提出一个新问题,但希望这里的某个人能够解决一些问题。存储静态“网站维护”页面的最佳位置在哪里? Nginx将其“欢迎使用nginx”页面放在/ usr / share / nginx / html中,但我需要sudo来编辑它。我不记得上次参与这个项目的时候必须这样做,而且看起来似乎并不直观,我需要成为root用户来编辑一个简单的欢迎页面,所以我想知道我是否做了些什么错误或非标准。

提前谢谢!

1 个答案:

答案 0 :(得分:2)

这有点主观,但我会告诉你我做了什么。

首先,开发人员拥有帐户的唯一原因是允许他们部署代码。他们不应该在他们的主目录中存储任何东西,更不用说实际的项目了。

为网站提供服务的代码需要处于中心位置。我喜欢在/srv/<sitename>下部署,但这取决于你;只要它不在/var/www下,你应该没问题。主要的是服务器进程运行的帐户需要具有访问权限。

无论如何,Virtualenvs都是很好的做法。除了其他任何东西,它们确实简化了部署过程,因为没有人需要能够写入主要的site-packages目录,只需要写入virtualenv中的目录。此外,您可能会发现自己需要在某个时刻在同一台服务器上运行单独的项目,此时virtualenv成为必需品。