对Apache数据和日志使用/ var或/ srv?

我一直这样configurationApache:

/etc/httpd/conf/httpd.conf(主Apacheconfiguration)

<Directory /> Options None AllowOverride None Order deny,allow Deny from all </Directory> <Directory "/var/www/html"> Options None AllowOverride None Order deny,allow Deny from all </Directory> 

虚拟主机configuration

 <VirtualHost *:80> ServerName xxxxx.co.uk ServerAlias xxxxx.co.uk xxxxx DocumentRoot /var/www/html/xxxxx.co.uk ErrorLog /var/www/log/xxxxx.co.uk <Directory "/var/www/html/xxxxx.co.uk"> AllowOverride None Options -Indexes -FollowSymLinks Order Allow,Deny Allow from all </Directory> </VirtualHost> 

我注意到,有些人似乎创build了一个特定的文件夹的网页内容和日志,即

 /srv/html/xxxxx.co.uk /srv/log/xxxxx.co.uk 

我想知道是否有人可以说明这是为什么? 这样做更安全吗? 是否有任何其他的理由来移动网页内容的内容和日志的/ var / …..path?

提前致谢 :-)

除了Mike关于FHS的观点之外,还有一个来自Ubuntu论坛的讨论:

http://ubuntuforums.org/showthread.php?t=1425726

最好的评论是:

/ var是一个较老的约定。 这是为了随时间变化的数据(“可变数据”),如caching,假脱机,日志,各种家政和pipe理文件,而“用户数据”将在主目录中…但在某些时候,可能由于缺乏其他合适的地方,/ var也成为守护进程将服务于其他系统和用户(如数据库和网页)的“数据”的地方。 当然,这些文件也会“随时间变化”,但我同意网站和系统日志之间存在差异。

Debian仍然默认使用/ var作为数据,但是也许大多数“老”的linux(例如Redhat),大多数文档都假设/ var也是这种types的,尽pipe我已经看到/ srv作为数据目录的例子,不那么传统)应用程序的pipe理指南。

FWIW,CentOS 6有一个/ srv目录,但是它是空的,Apache是​​一个主要的例子,默认为/ var / www作为根目录。 你可以把你的例子中的/srv/logs正确地放在/var中,因为日志并不是你的机器所提供的东西。

我的理解是/var/www已经是很久以前的惯例了, /srv是文件系统标准化工作的一部分。 /var/www是过去的事实上的约定,我们正处于一个过渡时期,旧惯例逐渐被淘汰,转而支持新公约。

对于许多发行版来说,转换的第一步通常是创build/srv并用符号链接填充它,例如/srv/www – > /var/www 。 在将来的某个时候,我希望看到发行版反过来,在这种情况下,这些文件将在/srv ,而符号链接将是/var/www – > /srv/www 。 更进一步来说, /var/www可能会完全消失。

你可以看看下面的内容

http://www.pathname.com/fhs/pub/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM

我也使用/ srv。 这更多的是我如何做,而喜欢它为什么types的东西。

在处理真正的大型应用程序时,通常在群集内提供数据,可以为/ srv和/ var使用不同的后端(RAID,NAS …),还有两个额外的好处:

  • 您的备份,复制和快照策略对于/ srv(真实数据)和/ var(日志,临时数据)可能不同。

  • 可能访问/ var中的数据是连续的,而访问/ srv往往是更随机的。 您可以将/ srv放在更快的后端(带有大caching或SSD的NAS)和/ var放在更便宜的本地磁盘中。

它可以在/ var中混合你的真实数据,但是这种方式更加清晰和易于pipe理。