请批评我的网站文件布局

请批评我的网站文件布局

我正在使用 Django 和 Apache2 配置一个 Linux 网络服务器来支持多个不同的网站。每个网站都有 Django 代码、一些支持每个网站的库以及 Apache 配置文件。这种布局会带来什么问题吗?

home/
|--django_libraries
|  |--lib_one/
|  |--lib_two/
|--sites
|  |--site_one/
|  |--site_two/
|  |--site_three/
|--apache_conf/
|  |--apache2.conf, etc
|  |--sites-available/
|  |--sites-enabled/
|  |--et cetera
|  |--[mods-enabled and the like left under /etc]
|--apache-support/
   |--directories with certificates for ssl, authentication files, etc

我的理由:

  • 这会将特定于站点的文件组织到一个目录下。我知道在哪里可以找到文件,并且可以使用单个 tar 语句对其进行备份或复制。
  • 这似乎允许足够多的单独事物通过用户权限来控制访问和安全。
  • 我不喜欢打扰 etc/ 下的默认 Apache 配置,因为我是新手,经常参考它们。而且我发现将 Apache 配置放在 Django 代码附近会减少混淆。

有什么想法吗?

答案1

只是一个想法。如果您正在共享库,当您需要更新其中一个库时可能会出现问题。

我们之前遇到过这个问题。我们用 Zend Framework 做了几个项目,只有一个 ZF 实例。其中一个项目需要升级 ZF,升级到没有向后兼容性的版本(例如 1.7.8 -> 1.8)。为了不影响其他项目,我们最终为这个项目单独安装了 ZF。

我的建议是使用 Git 或 SVN 之类的版本控制工具来使每个项目的库保持最新,并将这些库放入库存储库中。

答案2

这与我通常设置自己的 VPS 和服务器(如果我是唯一一个在服务器上执行操作的人)的方式类似。我想这更多地取决于该特定服务器的用途。

如果您只是自己维护,那么我认为您会没事的。上面提到了共享依赖项,所以这是需要考虑的事情。

答案3

您的应用程序(即 django 应用程序)是否位于站点目录中?如果是,哪些目录是站点的 Web 根目录?

我的工作方式如下:

var/
|--www/
|  |--website-root/
|  |  |--media-files/
|  |  |  |--css/
|  |  |  |--javascript/
|  |  |  |--images/
home/
|--djangisms
|  |--django-libraries/
|  |--my-django-website/

站点配置中包含了向 django 说明所有内容所在位置的说明。

答案4

我的声誉不足以添加评论。

@o_O Tync:您是否将此结构用于基于 Django 的网站?chernevik 的问题具体涉及多个不同的网站应如何在一台服务器上共存,以及它们是否应共享 Django 库或使用单独安装的版本。此外,Django 有特定的位置来存放文件类型(如果您知道自己在做什么,可以更改其中一些位置)。我假设您的设置不是 Django 特定的,因为您没有指定媒体文件、管理媒体文件、模板的保存位置、应用程序的保存位置以及 site.urls 的位置?

如果我对一台服务器上的多个站点有更多的了解,我会对 chernevik 的布局发表评论,但我不知道。

相关内容