根据推荐的用法,网站应该位于 /var/ 还是 /usr/ 中?

Nic*_*ton 67 linux website directory

根据Linux 目录结构指南/usr/适用于应用程序文件,/var/适用于更改的文件(我认为这意味着“属于应用程序的文件”)。这样对吗?

如果是这种情况,那么我在使用两者之间有点纠结。网站是一个应用程序(如果它是动态的,可以这么说),但在其他情况下,它只是 Apache 使用的文件集合。

默认的 www 目录位于/var/www/,所以我们应该通过使用/var/websites/(或类似的东西)来效仿,还是/usr/websites/因为它们可能是应用程序而选择?

这是一个非常微不足道的问题,但它仍然困扰着我。对于我们的案例,我倾向于/usr/web或类似的东西,因为我们的网站都是应用程序。

更新:

这是针对我们公司的网站;它不是共享托管服务器,因此我们无需担心将它们分开/home/或类似的事情。

Jam*_*ley 68

根据FHS/usr是为了shareable, read-only data- 而不是你想把网站放在哪里。这是您应该放置代码的地方(例如 Fedora 为 Wordpress 执行此操作)。另请参阅Fedora的网络资产打包指南。

/var是“可变数据文件。这包括假脱机目录和文件、管理和记录数据以及瞬态和临时文件。” -- 更好,但仍然不完全正确 -- 但是很多系统都会使用/var/www,所以即使你把它放在那里是错误的,你也是很好的伙伴。

/srv用于“此系统提供的特定于站点的数据”。-- 这似乎是一个很好的匹配,但比/var/www.

放置站点文件的另一个常见位置是/home- 通过创建一个名为websiteor 这样的特殊用户,然后将文件放置在该用户的主目录中(例如,/home/website)。

  • 默认只设置为`/var/www`,因为发行版不允许接触`/srv`;即供系统管理员配置。所以,这就是为什么它“不那么常​​见”而且是正确的。 (14认同)
  • 啊,我的作品使用了`/srv`——因为我以前从未见过这个,我认为它是由他们创建的。它是 Redhat/CentOS 的东西吗? (5认同)

ptm*_*man 31

看看文件系统层次结构标准维基百科)。我自己使用 /srv/web/$domain/{htdocs,logs,cgi-bin,...}。

  • 我也这样做,但我总是使用服务名称“httpd”而不是“www”。所以我有 /srv/httpd/$domain... 或 /srv/smbd/sharename... 像这样更容易看到哪个服务正在为文件提供服务。例如,在某些系统上,我们有 /srv/nginx/$domain (3认同)

wom*_*ble 10

网站应该位于用户的主目录中。它们是用户数据,应该由每个站点一个用户隔离,动态内容应该再次作为单独的用户运行,动态内容需要读取和修改的文件,并给予适当的权限。

更新:

仅仅因为它不是共享托管服务器并不意味着您不应该参与良好的安全实践并将独立角色分离到他们自己的安全区域中。


Den*_*son 8

权威指南是文件系统层次结构标准,它说这/srv是正确的地方。

  • 这就是标准的好处——有很多可供选择!:) (7认同)
  • 我不是这样读的——或者至少,我认为在这一点上是模棱两可的。大多数网站不是简单地“由这个系统”提供服务,而是由整个系统集群提供服务;和以“此设置将因主机而异”开头的两句话表明这不是跨多个服务器共享文件的地方。这是一个相当可能的地方 - 当然比`/usr`更合适,并且可以说比`/var`更好 (2认同)