根据关于 Linux 目录结构的指南,/usr/
它用于应用程序文件,并且/var/
用于更改的文件(我假设这意味着“属于应用程序的文件”)。这个对吗?
如果是这种情况,那么我在使用两者之间有点纠结。网站是一个应用程序(如果它是动态的,可以这么说),但在其他情况下,它只是 Apache 使用的文件的集合。
默认的 www 目录位于,所以我们应该通过使用(或类似的东西)/var/www/
来效仿,还是选择因为它们可能是应用程序?/var/websites/
/usr/websites/
这是一个非常琐碎的问题,但它仍然困扰着我。对于我们的案例,我倾向于/usr/web
或类似的东西,因为我们的网站都是应用程序。
更新:
这是针对我们公司网站的;它不是共享托管服务器,因此我们不必担心将它们分开/home/
或类似的事情。
根据FHS,
/usr
是用于shareable, read-only data
- 不是您想要放置网站的位置。这是您应该放置代码的地方(例如 Fedora 为 Wordpress 执行此操作)。另请参阅 Fedora 的网络资产打包指南。/var
是“可变数据文件。这包括假脱机目录和文件、管理和日志数据以及临时和临时文件。” - 更好,但仍然不完全正确 - 但很多系统都会使用/var/www
,所以即使你把它放在那里是错误的,你也可以在好伙伴中。/srv
用于“此系统提供的特定站点数据”。-- 这似乎是一个很好的匹配,但比 . 少得多/var/www
。另一个常见的放置站点文件的地方是
/home
——通过创建一个名为website
或这样的特殊用户,然后将文件放置在该用户的主目录中(例如,/home/website
)。看看文件系统层次标准(维基百科)。我自己使用 /srv/web/$domain/{htdocs,logs,cgi-bin,...}。
网站应该存在于用户的主目录中。它们是用户数据,应该由每个站点一个用户隔离,并且动态内容应该再次作为单独的用户运行,动态内容需要读取和修改的文件需要适当的权限才能这样做。
更新:
仅仅因为它不是共享托管服务器并不意味着您不应该参与良好的安全实践并将独立角色划分到他们自己的安全区域中。
权威指南是文件系统层次标准,它说这
/srv
是正确的地方。它们在磁盘上的位置无关紧要。这是你想要他们的地方。
我的所有机器上都有一个从 /www 到它们真正居住的地方的符号链接,所以我不必怀疑机器之间的关系。一些较旧的机器有 /u0 和 /u1 用于用户磁盘,我将 web 东西放在那里。有些直接挂载了 /home,所以他们去那里,但 /www 总是指向正确的地方。
我也没有在 /usr 或 /var 中放置任何配置。它进入 /local(你猜对了,它通常是 /u0 或 /u1 上某处的符号链接)。这使得备份事情变得容易。我只是备份用户磁盘。
当然,我选择的操作系统 NetBSD 有一个主分发站点。我在这台主机(实际上是一个 xen 实例)和 rsync /usr 周围制作了我想要的系统。让我的生活变得轻松。
Apache Web 服务器在/var/www/下有默认网站,但建议将其他网站放在/srv/下
我在 Ubuntu Server 14.04 LTS 上注意到了这一点。它的默认 apache2.conf 文件包含注释块:
根据我的说法,你不应该也不应该将任何 Internet 服务放在公共系统区域。
您的 Internet 服务(Apache / Tomcat / SSH 等)是一个前门,那么如果您将这些服务放入您的系统区域,您将可能容易受到某些攻击。
不仅仅是将不同的服务放入一个安全的沙箱区域,就像另一个分离分区一样。
这是您可以使用的结构示例: