根据有关Linux目录结构的指南,/usr/用于应用程序文件,而/var/用于更改的文件(我假设这意味着“属于应用程序的文件”)。这是正确的吗?
如果是这种情况,那么我在使用这两种方法之间都会有些挣扎。网站是一个应用程序(可以说是动态的),但是在其他情况下,它只是Apache使用的文件的集合。
默认的www目录位于/var/www/中,因此我们应该通过使用/var/websites/来效仿(或类似的东西),或者选择/usr/websites/,因为它们可能是应用程序?
这是一个非常琐碎的问题,但这仍然困扰着我。对于我们来说,我倾向于/usr/web之类的东西,因为我们的网站都是应用程序。
更新:
这是我们公司的网站;它不是共享的托管服务器,因此我们无需担心在/home/或类似内容中将它们分开。

评论

我不认为这个问题很简单。实际上,这是一个相当不错的。有趣。

#1 楼

根据FHS,/usr代表shareable, read-only data,而不是您要放置网站的位置。这是您应该放置代码的位置(例如Fedora为Wordpress编写了代码)。另请参阅Fedora的Web资产打包指南。

/var是“可变数据文件。这包括假脱机目录和文件,管理和日志记录数据以及临时和临时文件。” -更好,但仍然不太正确-但是许多系统都将使用/var/www,因此即使您输入的位置有误,您也可以在公司中找到好伙伴。

/srv用于“该系统提供的特定于站点的数据。” -看起来很合适,但是比/var/www更不常见。

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

评论


嗯,我的作品使用/ srv -因为我以前从未见过,所以我认为它是由他们创建的。是Redhat / CentOS的东西吗?

–尼克·博尔顿(Nick Bolton)
2010年1月17日在18:45

缺省值仅设置为/ var / www,因为不允许发行版接触/ srv。供系统管理员配置。因此,这就是为什么它“不那么常​​见”并且正确的原因。

–迈克尔·汉普顿
2014年4月21日在15:27

我在4-5台Web服务器上工作,有多个用户可以登录并管理自己的文件,并且我一直将/ home / username / user_webfiles /(后者通常是webapps / html和cgi-bin)用于用户根目录下的日志等。

–戴夫·埃弗里特(Dave Everitt)
20年6月23日在14:16

#2 楼

看一下文件系统层次结构标准(Wikipedia)。我本人使用/ srv / web / $ domain / {htdocs,logs,cgi-bin,...}。

评论


我也这样做,但是我总是使用服务名“ httpd”代替“ www”。因此,我有/ srv / httpd / $ domain ...或/ srv / smbd / sharename ...这样,可以更轻松地查看哪个服务正在提供文件。例如,在某些系统上,我们有/ srv / nginx / $ domain

–拉斐尔·路西格(Raffael Luthiger)
2014年4月21日在15:59

#3 楼

网站应位于用户的主目录中。它们是用户数据,应由每个站点一个用户隔离,并且动态内容应再次以单独的用户身份运行,并且具有相应权限的动态内容需要读取和修改的文件。

更新:

仅仅因为它不是共享的托管服务器,并不意味着您不应该从事良好的安全实践并将独立角色划分为自己的安全区域。

评论


这很有道理。除非情况发生了根本变化。多年来,我一直受其他管理服务器时间更长的人的指导,他们将每个用户添加到登录时仅限于他们自己的根目录,以便他们可以在自己的空间中管理自己的网站文件。据我所知,只有服务器管理员用户具有root / sudo访问权限,这是他们保护服务器安全的职责之一。

–戴夫·埃弗里特(Dave Everitt)
20年6月23日在21:18

#4 楼

权威指南是文件系统层次结构标准,其中指出/srv是正确的位置。

评论


我不是那样阅读的-至少,我认为在这一点上模棱两可。大多数网站不是仅通过此系统提供服务,而是由整个系统群集提供服务;并且从此设置开始的两个句子因主机而异。建议不要在许多服务器之间共享文件。不过,这是一个相当可能的地方-当然比/ usr更合适,并且可以说比/ var更好

–詹姆斯·波利(James Polley)
2010年1月14日,9:19

我认为FHS根本不是确定的。回复:(来自Wikipedia):大多数Linux发行版都遵循FHS,并声明其自己的政策来维护FHS遵从性。但是,绝大多数发行版(截至2009年),包括由Free Standards Group成员开发的发行版,都没有完全遵循建议的标准。

–迈克尔·格拉夫(Michael Graff)
2010年1月14日,9:37

关于标准,这是一件好事-有很多选择! :)

–詹姆斯·波利(James Polley)
2010-1-15在12:37

#5 楼

它们在磁盘上的位置无关紧要。

我从所有机器上的/ www到它们实际居住的地方都有一个符号链接,因此我不必怀疑机器之间的情况。一些较旧的机器将/ u0和/ u1用于用户磁盘,并且我将网络内容放置在其中。有些服务器直接将/ home挂载,所以他们去了那里,但是/ www总是指向正确的位置。

我也不在/ usr或/ var中放置任何配置。它在/ local中(您猜到了,它通常是/ u0或/ u1上的符号链接)。这使备份变得容易。我只是备份用户磁盘。

当然,我有一个供我选择的操作系统NetBSD使用的主发行站点。我在该主机上(确实是一个xen实例)使系统像我想要的那样运行,并在/ usr周围使用rsync。使我的生活变得轻松。

评论


如果您是一个人操作的团队,或者甚至是一个紧密合作,彼此熟悉的小团队的小团队,这很好-学习“正确”的方法可能会比仅仅花费更长的时间它。如果您的业务量很大并且经常需要新人加入,则必须使他们尽快采用这样的布局会花费大量时间-坚持(或至少接近)FHS是节省与您带入团队的每个新人在一起的时间。

–詹姆斯·波利(James Polley)
2010年1月14日,9:24

当您使用8个不同的OS时,内部标准比每个OS都更容易学习。

–迈克尔·格拉夫(Michael Graff)
2010年1月14日,9:32

@James Polley告诉新员工“我们将物品放在/ path / we / chose中”需要多少时间?

–ceejayoz
2010年1月14日14:57



@ceejayoz如果您拥有不止两个类别的“东西”,则告诉他们“我们遵循FHS”要简单得多,即使对于某些“东西”类别可能需要一些其他详细信息。

–tripleee
2015年6月11日在5:56



#6 楼

Apache Web服务器在/ var / www /下有默认网站,但建议将其他网站放在/ srv /下。我在Ubuntu Server 14.04 LTS上注意到了这一点。其默认的apache2.conf文件包含注释块:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>


#7 楼

根据我的说法,您永远都不要在公共系统区域上放置任何Internet服务。

您的Internet服务(Apache / Tomcat / SSH等)是前门,那么如果您将这些服务放入自己的在系统区域中,您可能容易受到某些攻击。

比将其他服务放入另一个独立分区等安全沙箱区域中的功能要多得多。

这是一个您可以使用以下结构示例:

/ --> Root System --> On SDA1 --> Root and System security operator access only
 |
 | -->/usr /etc /var etc.

/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
 |
 |-->/srv/bin & /srv/dta
      |
      |-->/srv/bin/apache (or any other APPLICATION Binaries)
      |-->/srv/dta/SQL (or any other APPLICATION Datas like a 
                        database or web PHP files etc.)


评论


您可以在“公共系统区域”上进行扩展吗?这不是我以前听过的术语,也不确定您的意思。 / srv / bin似乎违反了FHS,FHS指出/ srv用于数据,而不是二进制文件

–詹姆斯·波利(James Polley)
2010-1-14的9:20



通用系统区是指操作系统的一部分,用于存储所有系统组件,例如帐户,密码,管理员二进制文件和库。我知道我的安装不完全遵守FHS,但是我可以将操作系统完全分为两部分。 1°/-相当完善的系统(更新和管理工具安装除外)2°/-应用程序,数据和美国家园。这样,如果您的系统或数据出现问题,您将不会丢失所有数据。

–我博士
2010年1月14日上午10:52

我懂了。这很有道理-这就是为什么大多数台式机将/ home放在单独的分区上的原因-您可以删除非/ home分区上的所有内容,而不必担心丢失用户数据。 +1用于隔离数据。

–詹姆斯·波利(James Polley)
2010年1月15日,12:39