站点根目录应该在哪里?

站点根目录应该在哪里?

我应该将我的网站根目录“my_site”放在哪里?有什么最佳实践吗?

/var/www/my_site/
/var/local/sites/my_site/
/usr/share/wwww/my_site/
/usr/local/my_site/
/opt/my_site/
/srv/my_site/

答案1

没有最好的放置位置。这只是个人喜好问题。

放在下面/var/www很常见。我用的是/var/www/sites/<vhost>

将其置于其他之下并不常见。

我本人绝不会把它放在下面/usr/share

只要确保始终将其放在同一个位置即可。如果您最终管理数十或数百个 Web 服务器,并且各个服务器的 DocumentRoot 各不相同,那么您将面临麻烦。

答案2

实践各不相同,我认为没有普遍的共识或者它足够重要以至于确实存在“最佳”。

发行版通常默认为/var/www,如果您将其解释为“可写系统数据”,则这是有道理的/var。许多人只是遵循此默认设置并将自己的内容放在那里。

其他人(这通常是 15 年前发行版的默认设置)使用/home/www或类似的东西,就在用户主目录旁边。我认为一般来说,这被认为是不是最佳实践,因为针对用户和服务器应用程序数据的策略通常非常不同,并且可能存在与服务关联的用户不应该对文件具有写访问权限,并且总体而言,这似乎只是命名空间的混乱使用。

/usr/share通常也不是一个好主意,因为在现代发行版中/usr(除了/usr/local)应该由发行版的包管理器控制的区域,而不是以其他方式写入。

从积极的一面来看:文件系统层次标准/srv基本上专门为此目的而指定:

/srv 包含此系统提供的站点特定数据。

[...] /srv 应该始终存在于符合 FHS 的系统上,并且应该用作此类数据的默认位置。

所以如果你真的想要一个可以遵循的标准,一。我个人很喜欢这一点,并且发现它使备份策略变得更容易。(大部分/var短暂的变量数据不需要保留很长时间,至少只要您遵循将实际的“业务”数据放入的做法/srv。)

答案3

没有设置硬编码首选项来将其放在任何特定目录下。

/home/acountname/public_html如果我在单个服务器上托管多个网站,我愿意保留所有与网站相关的数据,因为我将帐户名作为business or user or client托管网站的帐户名。

最受欢迎的文档根目录是/var/www/html//var/www/sites/如果您只托管一个网站。

您可以根据需要将其放在任何地方。但当然没有人会建议将其放在 下/usr/share/

答案4

没有一个“正确”的地方,但尝试尊重分布的习惯并不是一个坏主意。根据 FHS 和其他来源,程序拥有和管理的数据属于 6 个不同的文件夹:

  • /usr/share:被认为与架构无关的不可修改数据(当然,对于系统管理员来说,不存在不可修改的数据)。
  • /etc:不可修改的配置数据(再次强调,系统管理员始终有最终决定权)。
  • /run:进程在其整个生命周期内使用的可变数据(但在重启之间非持久性)。
  • /tmp:短时间内使用的可变数据(重启间非持久性)。
  • /var:其他辅助/可选数据(持久数据、可由用户修改的数据以及一般不适合其他文件夹的数据)。常见子文件夹:
    • www:网站
    • 信箱:邮箱
    • tmp:与 /tmp 相同,但用于存储重启后需要保留的临时数据。
    • 假脱机:等待传送到其他程序/主机或被其他程序/主机使用的数据。
    • lock:锁定文件。
  • /srv:与 /var 相同,但考虑的是服务而不是其他程序。

根据这些描述,网站应该转到 /srv/www,但是 debian 系统不使用它。他们改用 /var(/var/www、/var/mail 等)。

相关内容