网站内容的默认位置

我打算在生产服务器上安装MediaWiki(在开发环境上进行测试后)。我真的不明白为什么MediaWiki文件的默认位置是/var/lib/mediawiki。我本以为/var/www更合理。

我进行了一些研究,在Ubuntu政策手册,第11章 - 自定义程序,11.5 网络服务器和应用中写着以下内容。

Web Document Root

Web Applications should try to avoid storing files in the Web Document Root. Instead >they should use the /usr/share/doc/package directory for documents and register the Web >Application via the doc-base package. If access to the web document root is unavoidable >then use

/var/www
为什么会这样呢?

我不确定我理解你在这里的问题。对我来说,听起来你想知道为什么它存储在'/usr/share/doc/package'而不是'/var/www' - 据我所知,编辑apache配置文件相当容易。 - jrg
2个回答

看起来我们是从Debian继承了这个政策。我能找到的最相关的讨论是2003年的这个讨论。
然而,我找到了一个新的草案政策(请查看第3.1节),它似乎有更多详细信息,可能有助于解决你的问题。它特别提到了文件系统层次标准。根据该标准,/usr/share/doc包括“与架构无关的(共享的)数据”,其中包括用户无法修改的网页。
由于Mediawiki是用户可编辑的,所以/var/lib/mediawiki将是它应该放置的位置,因为FHS规定/var/lib是用于“状态信息。程序运行时被程序修改的持久数据,例如数据库、打包系统元数据等。”而手册中也提到:

用户上传的内容

/var/lib/PACKAGE的一个独特子目录

手册中的其余部分解释了与体系结构相关的事项(如PHP和Perl)。

然而,这些信息被标记为草稿,所以我不确定它是否在Debian中得到了执行或者还在等待。我预计,如果这是最终政策,我们很可能会从Debian那里继承它。

所以我猜部分答案是“FHS这样规定,Debian遵循,所以我们也遵循。”(不幸的是)我找不到关于FHS在这方面的理由/原因的任何信息,也许其他人能更好地找到这些信息并添加一个答案。


你的自定义内容确实放在了/var/www目录下 - 在这里你可以编辑文件、移动它们等等。

然而,来自软件包仓库的PHP(和其他)应用程序可能会将它们的内部库安装到/usr/share/packagename/var/lib/packagename中,以更好地适应其他(非Web)应用程序。请查看此MediaWiki软件包内容列表

此外,如果你正在运行本地Web服务器,软件包可能会在其上发布HTML(和其他)文档。Ubuntu上Apache 2的默认配置允许从localhost访问系统文档,位于/doc目录下。不过,这是另一个话题。


我认为他只是在寻找政策的解释。 - Jorge Castro
我提出这个问题的原因是对我来说,/var文件夹用于存放日志之类的东西,而/lib文件夹则用于存放库文件之类的东西。/var/lib给我的感觉就像是错误的文件夹,我曾经想把我的维基百科放在其他位置,但还是谢谢你们两个出色的答案。现在我会将它保留在默认位置。 - user8155

  • 相关问题