网站内容的默认位置

6 debian apache2

我希望在生产服务器上安装MediaWiki(在对开发服务器进行测试之后)。我真的不明白为什么 MediaWiki 文件的默认位置是/var/lib/mediawiki. 我原以为/var/www会更有意义。

我做了一些研究,在Ubuntu 策略手册的第 11 章 - 自定义程序、11.5 Web 服务器和应用程序中,它说明了以下内容。

网页文件根

Web 应用程序应尽量避免将文件存储在 Web 文档根目录中。相反 > 他们应该使用 /usr/share/doc/package 目录存放文档并通过 doc-base 包注册 Web >Application。如果访问 web 文档根目录是不可避免的 > 然后使用

/var/www
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

Jor*_*tro 3

看来我们从 Debian继承了这个政策。我能找到的关于这项政策的最接近的讨论来自2003 年的讨论

不过,我确实找到了一份新的政策草案(查看第 3.1 节),其中似乎包含更多细节,可能有助于解决您的问题。它特别提到了文件系统层次结构标准。据此,/usr/share/doc包括“与体系结构无关(共享)的数据”,其中包括用户无法修改的网页。

由于 Mediawiki 是用户可编辑的,/var/lib/mediawiki因此 FHS 表示这/var/lib是“状态信息。程序运行时修改的持久数据,例如数据库、打包系统元数据等”的地方,并且手册上说:

用户上传的内容

/var/lib/PACKAGE 的唯一子目录

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

然而,此信息被标记为“草案”,因此我不确定它是否在 Debian 中强制执行或待定。我预计,如果这是最终政策,我们很可能会从 Debian 继承它。

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


Flo*_*nle 2

您的自定义内容确实会进入/var/www- 您可以在其中编辑文件、移动文件等。

但是,包存储库中的 PHP(和其他)应用程序可以将其内部库安装到其他(非 Web)应用程序中/usr/share/packagename/var/lib/packagename更好地适应其他(非 Web)应用程序。请参阅 MediaWiki 包内容列表

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