我应该将我的网站根目录“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 等)。