根据Linux 目录结构指南,/usr/
用于表示应用程序文件,/var/
用于表示更改的文件(我假设这意味着“属于应用程序的文件”)。这样正确吗?
如果是这样的话,那么我有点犹豫要不要用。网站是一个应用程序(如果它是动态的,可以这么说),但在其他情况下,它只是 Apache 使用的文件集合。
默认的 www 目录位于/var/www/
,所以我们是否应该效仿使用/var/websites/
(或类似的东西),或者选择它们,/usr/websites/
因为它们可能是应用程序?
这是一个非常琐碎的问题,但它仍然困扰着我。对于我们的情况,我倾向于/usr/web
或类似这样,因为我们的网站都是应用程序。
更新:
这是我们公司的网站;它不是共享托管服务器,所以我们不必担心将它们分离/home/
或类似的事情。
答案1
根据跳频,/usr
是shareable, read-only data
- 不是您想要放置网站的地方。这是您应该放置代码的地方(例如,Fedora 对 Wordpress 就是这么做的)。另请参阅网络资产Fedora 的打包指南。
/var
是“可变数据文件。这包括假脱机目录和文件,管理和日志数据以及瞬态和临时文件。” - 更好,但仍然不太正确 - 但很多系统都会使用/var/www
,所以即使你把它放在那里是错误的,你也不会有坏处。
/srv
是指“此系统提供的特定于站点的数据。”——这似乎是一个很好的匹配,但是比不太常见/var/www
。
放置站点文件的另一个常见位置是/home
-- 通过创建一个名为 或类似的特殊用户website
,然后将文件放在该用户的主目录中(例如/home/website
)。
答案2
答案3
网站应该位于用户的主目录中。它们是用户数据,应该由每个站点的一个用户隔离,动态内容应该再次以单独的用户身份运行,动态内容需要读取和修改的文件应获得适当的权限。
更新:
即使它不是共享托管服务器,也并不意味着您不应该参与良好的安全实践并将独立角色分离到他们自己的安全区域。
答案4
它们在磁盘上的哪个位置并不重要,重要的是你想要它们放在哪里。
我在所有机器上都设置了从 /www 到它们实际所在位置的符号链接,因此我永远不必在各个机器之间寻找。一些较旧的机器将 /u0 和 /u1 用于用户磁盘,我将 Web 内容放在那里。一些机器直接挂载了 /home,因此它们会去那里,但 /www 始终指向正确的位置。
我也没有在 /usr 或 /var 中放置任何配置。它放在 /local 中(您猜对了,它通常是 /u0 或 /u1 上的某个符号链接)。这使得备份变得简单。我只备份用户磁盘。
当然,我有一个我选择的操作系统 NetBSD 的主发行站点。我在这个主机上(实际上是一个 xen 实例)按照自己的意愿制作系统,然后 rsync /usr 四处运行。这让我的生活变得轻松。