网站根目录应该在哪里?

我应该在哪里放置我的网站根目录“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/ 

没有最好的地方来放置它。 这是一个偏好的问题。

把它放在/var/www是相当常见的。 我使用/var/www/sites/<vhost>

把它放在别人之下并不常见。

我个人不会把它放在/usr/share

只要确保你一直把它放在同一个地方。 如果最终pipe理数十个或数百个Web服务器,并且DocumentRoot因服务器而异,则您将遇到不愉快的时间。

没有硬编码的首选项设置在任何特定的目录下。

我更喜欢/home/acountname/public_html保留所有网站相关的数据,如果我在一台服务器上托pipe多个网站,因为我把帐户名称作为business or user or client我主办的网站的business or user or client

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

你可以放在任何地方,根据你的需要。 但是,当然没有人会build议把它放在/usr/share/

实践有所不同,我认为没有什么普遍的共识, 或者说这个共识足够重要,因为那里真的是“最好的”。

发行版倾向于默认为/var/www ,如果将/var解释为“可写入的系统数据”,这是有意义的。 许多人只是遵循这个默认,把自己的东西放在那里。

其他人(并且这通常是15年前的发行版默认)使用/home/www或类似的,紧邻任何用户主目录。 我认为这通常被认为不是最佳实践,因为用户和服务器应用程序数据的策略通常是非常不同的,并且可能有与该服务相关联的用户不应该具有对这些文件的写入访问权限,并且总体上看起来像一个凌乱的名字空间的使用。

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

在积极的方面: 文件系统层次结构标准指定/srv基本上专门为此目的:

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

/ srv应始终存在于符合FHS的系统上,并应作为此类数据的默认位置。

所以,如果你真的想要一个标准,那就一个。 就我个人而言,我喜欢这一点,并发现它使备份策略更容易。 (大部分的/var暂时的variables数据,至less只要你把实际的“业务”数据放在/srv ,就不需要长时间保留)。

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

  • / usr / share:不可修改的数据被认为独立于架构(当然,对于系统pipe理员来说,不存在不可修改的数据)。
  • / etc:不可修改的configuration数据(同样,系统pipe理员总是最后一个字)。
  • / run:进程在整个生命周期中使用的可变数据(但是在重启之间是非持久性的)。
  • / tmp:短时间内使用的可变数据(重启之间非持续)。
  • / var:其他辅助/可选数据(持久数据,可以由用户修改的数据,以及其他不适合其他文件夹的数据)。 常见的子文件夹:
    • www:网站
    • 邮箱:邮箱
    • tmp:与/ tmp相同,但对于在重新启动之间需要存活的临时数据。
    • 假脱机:数据等待交付给其他程序/主机或由其他程序/主机使用。
    • locking:locking的文件。
  • / srv:与/ var相同,但是用于服务而不是其他程序。

根据这些描述,网站应该去/ srv / www,但debian系统不使用它。 他们用/ var来代替(/ var / www,/ var / mail等等)。