将www相关的文件存储到/ home是不好的做法吗?

当我设置一个新的networking服务器(apache / mysql / nodejs / mongodb)时,我习惯于将每个www相关资源(apache www文件,节点js-apps,mysql / mongodb db文件)存储到/srv/www中我符号链接到/home/srv

这是为了方便地备份所有东西(因为所有东西都在/ home中)并将所有内容都存储在一个大的隔离分区中(除了交换到/ home之外,一般都是50G)。

我读过,我可以遇到一些安装问题这样做。

这被认为是不好的做法?

 mkdir --mode=0755 /home/srv; rm -rf /srv; ln -s /home/srv /srv && chown root:root /home/srv mkdir --mode=0770 /srv/www; chown www-data:www-data /srv/www 

你会从C:\用户提供您的IIS内容吗?

这里的问题是path的语义。

/home在unix中很好理解为一个包含用户数据的path,因此一些系统假定了数据types(SELinux是我能想到的一个大的数据types,但这在Ubuntu中不是那么重要)。

例如,如果您这样做了,则可能会出现其他问题,例如,突然出现了用户的自动安装需求。

我通常会试图遵循发行版的“规范”。 Redhat往往把服务特定的数据放在/var/lib

当然,这里有灰色地带。

  • 你做什么,其用户主要是什么,而不是SFTP用户传输网页内容
  • mod_userdir如何适应这一切。

对于第一点,亲自如果用户不过是服务用户,我将他们的主目录指向他们的网站的文档根的正确位置。

至于mod_userdir,这意味着它是一个真正的用户,他作为一个外围有一个Web文件夹,所以我会保持在/home Web内容。

从“系统pipe理员”的angular度来讲, 我认为这种设置看起来是sl散和混乱的,或者最坏的情况是缺乏能力。 你需要有充足的理由去做这样的事情。

纯粹作为你的系统的骄傲 – 设置它们来使用有道理的path(并且已经没有预先载入函数)。 我认为把东西放在不属于上下文的位置不是组织服务的好方法。

这是为了方便备份一切(因为一切都在/ home)。

不能把你所有的数据放在另一个目录中,如/var/lib/srv ? 坦率地说,备份多条path真的是一个很大的努力吗?

并将所有内容存储在一个大的隔离分区中(除了交换到/ home之外,其他所有内容通常都是50G)。

呃,只需提供/var/lib/srv作为大分区。

我的意思不是听起来很刺耳,但是在旅途中,我发现其他人在看到系统pipe理员这样做的时候,倾向于得到隆隆的声音。 我并不是指“重大问题警惕”,但它往往是你没有人告诉过你会被记住的事情,而这可能最终会让你在同行眼中抹黑。

“坏习惯”是非常相对的事情。

在大多数Unix系统上, /var/www是“包含主/默认网站的目录”,而/home/user/public_html是在访问http://example.com/~user通过的目录mod_userdir )。
一般来说,你应该坚持这个惯例,因为这是人们所期望的。

如果由于某种原因无法遵循这个约定,那么将符号链接起来通常是一个好主意,所以它们至less应该是它们应该存在的位置,但是您需要了解其他因素(如SELinux),这些因素可能会导致问题取决于您的服务器如何configuration。


作为最佳实践的一部分,您还应该观察一个理智的分区scheme ,它可以帮助您决定备份哪个分区/分区,以及每个分区有多less空间。
从这个意义上说,我并不完全同意Mlfe的build议 ,“只提供/var/lib/srv作为大分区”,或者“50G for / ”的布局,交换分区和“ /home “ – 你应该使用诸如hier联机帮助页等参考文件来确定特定系统(Ubuntu)的标准位置,然后正确构build分区布局以支持您的特定需求。
这样可以避免Mlfe谈论你在哪里实现了非标准化的东西,并永远被记住为“将网页置于/home之下的nitwit”或者类似的东西。