Jump to content

Manual:LocalSettings.php

本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page Manual:LocalSettings.php and the translation is 99% complete.
Outdated translations are marked like this.
警告 警告: 請勿使用文档编辑器(例如Windows 10 版本1809或更早的记事本、TextEdit、或是其他會将字节顺序标记加入至文件中的文本编辑器)來编辑LocalSettings.php。 这会破坏您wiki的PHP的运行。 请改用代码编辑器,例如VimNotepad++。 它们可以正确处理文件的编码。 它们也可以用于修复之前被文档编辑器破坏的文件。

LocalSettings.php文件提供了MediaWiki安装的基本配置设置。 您应该花些时间查看文件中的设置。 该文件一般是由基于Web的MediaWiki安装程序生成,但您可以调整参数,与Apache配合使用。 若将MediaWiki作为维基农场配置,可能会使用一个被称为CommonSettings.php 的文件。

服务器上的位置

LocalSettings.php文件不是一个Wiki页面且您不能够通过网页浏览器访问它。 相反,它是服务器文件系统中的一个文件。 它的内容是在wiki的初始设置过程中生成的,生成的文件必须手动复制到服务器上。 此文件必须位于您安装MediaWiki的目录中,与文件夹includes/skins/和文件api.php在同一级目录。 若该文件不在这里,这个Wiki将完全不会工作;若这个Wiki在工作,那么该文件就在这里。 如果您不知道这个文件在哪里,您可以在终端窗口中输入例如命令来查找它,例如:find / -iname LocalSettings.php -print

(如果你正在使用 Vagrant,另见 MediaWiki-Vagrant#MediaWiki_settings。)

安全

LocalSettings.php通常包含敏感数据比如数据库登录信息。 这个数据永远不应向公众透露。 由于服务器上某处存在安全漏洞,可能会发生其他用户可以查看文件内容。 为了提高数据的安全性,您应该相应地为此文件设置UNIX权限:服务器用户必须能够访问这个文件。 若与拥有该文件的帐户相同,则可以将权限设置为600。 有时服务器用户不是这个文件的所有者,而在所有者的UNIX用户组中。 这时权限应被设置为640。为了提高安全性,您应尽可能使用最小权限。

此外,您可以创建一个仅在Wiki上使用MySQL用户并在LocalSettings.php中提供相关的凭据。此外,您还可以配置您的MySQL服务器仅接受来自于本地的连接,这将降低从外部访问使凭据泄露的情况。

另请参阅 手册:保护数据库密码 以了解将 LocalSettings.php 的敏感部分移动到不同目录中的不同文件的方法。

文件内容

当您在编辑LocalSettings.php文件时,请确保以正确的编码下保存。您应该使用“ANSI as UTF-8”编码(即无字节顺序标记的UTF-8编码)。

LocalSettings.php文件中包含了PHP代码,主要是变量和其值的定义。更改设置通常意味着更改PHP变量的值。将文件保存到服务器后,您的更改将立即生效:不需要手动“重启”任何东西。尽管在某些情况下,您可能需要清除浏览器的缓存才能看到您所做的更改。

许多默认值includes/DefaultSettings.php中被设定,您不应该去改动它。如果您要更改的变量未在LocalSettings.php中提及,请从DefaultSettings.php中复制相应的行到LocalSettings.php中并做些相应的更改。 LocalSettings.php中,您可以在末尾添加新行。

在该文件中,将有几行内容(例如“require_once "$IP/extensions/extension.php";”)指向扩展。 这几行内容允许在wiki中启用相应的扩展。 这些扩展可能需要在LocalSettings.php中设定更多变量的值,有关进一步的说明,请参阅相应扩展的文档。

像MediaWiki中的大多数PHP文件一样,LocalSettings.php文件并不以关闭的PHP标签?>结束。这样可以防止管理员意外地在此标签之后添加新信息。PHP没有关闭标签工作正常。

倘若您有一个在维基农场上的MediaWiki,您可能并没有编辑(可能也没有阅读的权限)LocalSettings.php文件的权限(例如参见[1])。Wiki Farm的公司可能愿意或不愿做出您所期望的更改。也许他们希望在维基农场的所有维基上保持多数相同的配置。

出于安全原因,这个文件不在网络服务器上自动写入。它作为下载内容提供,您必须将它上传到您的服务器上以使您的Wiki工作。获取更为完整的解释,参阅这个页面

可用参数概览

请参阅配置设置索引以及设置文件中包含的说明,以获取所有相关变量的帮助。以下列出了最重要的变量以及多数需要的功能的简短列表。

标准设置

安裝路徑

$IP (安装路径)变量保存了你的 wiki 基本安装的本地文件路径。 从 MediaWiki 1.18 开始,系统会自动设置 $IP。 不再需要在 $IP 中手动设置 LocalSettings.php$IP 将默认为当前工作目录,无需手动定义即可使用。 尝试将 $IP(或 MW_INSTALL_PATH)设置为 LocalSettings.php 可能会产生意外结果。

DefaultSettings.php 文件从 IP 变量指定的目录中加载。

网站名称

$wgSitename 保存您安装wiki时设置的名称。这个名字在整个系统中被多次包含如通过MediaWiki:Pagetitle。例如,维基百科的标语“维基百科,自由的百科全书”就使用了这个设置。

网站名称的变格

一些界面的翻译已备妥以應對站点名称的变化。 您可以在变量$wgGrammarForms 中设置正确的单词形式(例如,请参阅$wgSitename 文档页面)。

网站语言

$LanguageCode控制了您的wiki的界面语言。 尽管用户可以通过在参数设置中改变他们看到的语言,但此变量设置了所有匿名用户和大多数注册用户看到的默认语言。

脚本路径

$wgScriptPath 是访问主要MediaWiki脚本的URL路径前缀,它是MediaWiki的中央核心代码。 这一设置应该与Apache的设置相符合,尤其是如果您使用了Apache的URL重写规则。

服务器名称

$wgServer 包含服务器的基本 URL,包括协议,但没有尾部斜杠,也没有子目录(如果有)。 当 wiki 从它运行的本地主机、Intranet 或 Internet 访问时,电子邮件通知和一些其他计算消息通常会通过不同的 URL 传送。

从 MediaWiki 1.34 开始,$wgServer 必须设置为 LocalSettings.php。 在此之前,MediaWiki 尝试自动检测服务器的名称,$wgServer 是可选的,以覆盖自动检测。

如果您wiki服务器在互联网上的地址是www.example.com ,那么请加入类似如下的一行:

$wgServer = 'http://www.example.com';

magic word 变量 {{SERVER}} 可用于维基页面; 它等于 $wgServer 的值; 然而,在维基媒体系列中,使用相对网址的维基,它不会完全展开,例如这里显示//www.mediawiki.org,既不能点击也不能复制粘贴到地址栏 照原样。

您还可以使用协议相对 URL,如下所示。 使用协议相对网址时,请务必设置 $wgCanonicalServer。 对于代码中需要具有协议和主机名的源的某些地方,需要 $wgCanonicalServer

$wgServer = '//www.example.com';
$wgCanonicalServer = 'https://www.example.com';

脚本名称

$wgScript 是主要(索引)MediaWiki PHP 脚本的名称,默认名为 index.php。 更改脚本名称可能不是一个好主意。 但是,如果您有这样做的冲动,那么这里就是您进行更改的地方。 确保你知道你在做什么。

文章路径

$wgArticlePath 是访问 MediaWiki 页面时使用的路径。 该路径应包含主脚本的路径(通常使用 $wgScript)并使用 $1 占位符作为文章名称。 路径应包含主脚本的路径(通常使用 $wgScript),并使用 $1 占位符作为文章名称。

如果您使用 Apache 重写规则来创建漂亮且简短的 URL,您可能需要调整 $wgArticlePath 以找到正确的路径。 请注意, wgArticlePath 用于从 MediaWiki 中构建 URL。 如果您在这里犯了错误,内部链接将不正确显示,而您仍然可以通过手动指定正确的 URL 来访问主页。 有关 URL 配置的更多信息,请参阅 手册:短链接

典型值为:

"$wgScript/$1" 用分隔符“/”传递文章名称
"$wgScript?title=$1" 将文章名称作为参数传值(旧风格)
"/mypath/$1" 自定义路径。使用 Apache 重写规则将“mypath”转换为访问主脚本的正确路径

样式表位置

使用 $wgStylePath 将 URL 路径设置为 MediaWiki 安装的样式表 (CSS) 所在的位置。 $wgStyleDirectory 应该指向同一个地方,但请注意,这是一个本地文件系统路径,用于访问文件系统的内部脚本。

上传位置

上传目录是存放用户上传文件的地方。 $wgUploadPath 指定 URL 路径,$wgUploadDirectory 指向本地文件系统路径。

徽标

$wgLogo 指定在所有 MediaWiki 页面的左上角显示哪个图形标志。 这些步骤替换 /wiki/skins/common/images/ 目录中的默认标志,将 /wiki 替换为您安装 MediaWiki 软件的目录的路径。

首先,将您想要的任何标志复制到 /wiki/skins/common/images/ 目录中(将 /wiki 替换为您安装 MediaWiki 软件的目录的路径)。

接下来,尝试在 LocalSettings.php 中找到如下所示的行:

$wgLogo = "$wgStylePath/common/images/wiki.png";

如果没有这样的行,您可以将上面的行复制并粘贴到文件末尾。

然后,修改该行以指向您的标志。标志必须可通过网络访问。 该变量的值被传递到 Web 浏览器,浏览器使用它来获取标志。如果有疑问,选择要放在这里的内容的一个好方法是导航到 Web 浏览器中的标志(例如,此 wiki 标志的URL是 http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png ),并将完整的 url 作为该变量的值。

有些人只是用他们的标志替换 skins/common/images/wiki.png 文件。不推荐这样做,因为升级时会覆盖自定义标志。

MediaWiki 1.35 引入了 $wgLogos ,允许同一徽标的多个版本。 下面显示了使用多个徽标的示例。

$wgLogos = [
	'1x' => "$wgStylePath/common/images/1x_version.png",
	'1.5x' => "$wgStylePath/common/1.5x_version.png",
	...
	'tagline' => [
		'src' => "$wgStylePath/common/tagline_version.png",
		'width' => 135,
		'height' => 15,
	],
];

联络信息

$wgEmergencyContact 是出现问题时要联系的用户的电子邮件地址。此电子邮件地址用于向其发送内部错误报告。作为管理员,您应该在此处包含您的电子邮件地址。

$wgPasswordSender 是将密码发送给忘记密码的用户时,电子邮件“发件人”的电子邮件地址。选择一个人们可以在遇到麻烦或困惑时回复的地址。

数据库设置

MediaWiki 需要访问数据库(使用 MySQLPostgreSQL)来存储页面、修改、用户信息和更多内容。

$wgDBserver 包含托管数据库的主机名。 在大多数情况下,这只是“localhost”,因为数据库运行在同一系统上,但对于分布式安装,您需要填写运行数据库的计算机的完全限定域名。

$wgDBname 是 MediaWiki 使用的数据库的"数据库名称"。 单个 MySQL 或 PostgreSQL 安装可以存储多个数据库,您甚至可以在单个服务器上运行多个 MediaWiki 安装。 确保您在此处声明了正确的数据库名称,并为同一数据库服务器上的不同 wiki 安装使用不同的数据库名称。

$wgDBuser $wgDBpassword 包含 MediaWiki 用于访问数据库的登录名和密码。 确保指定的用户具有适当的访问权限,以便能够操作数据库服务器上的 wiki 表。

另请参阅 手册:保护数据库密码 ,了解将 LocalSettings.php 的敏感部分移动到不同目录中的其他文件的方法。

用户权限

$wgGroupPermissions 是一个关联数组,用于控制为不同用户组创建和编辑页面的权限。在此数组中,可以创建自定义权限级别,并且可以设置不同用户组的权限级别。有关可用不同权限和用户组的更多信息,请参阅 Help:User rights

强制链接首字母大写

默认情况下,任何页面名称都不能以小写字母 罗马字母:为了做到这一点,第一个字母被转换为大写;如果链接目标、包含的页面、图像或类别的名称以小写字母开头,则实际目标等是以相应大写字母开头的页面。

或者,页面名称可以以小写字母开头,此外还可以以大写字母、数字等开头。为此,您必须调整$wgCapitalLinks 。将其设置为 false 允许使用小写字符,true 选择默认行为。

启用子页面

LocalSettings.php中,子页面是使用$wgNamespacesWithSubpages 在每个命名空间的基础上启用的。例如,要在主命名空间中启用子页面,请执行以下操作:

$wgNamespacesWithSubpages[NS_MAIN] = 1;

图像上传

在用户被允许将文件上传到 MediaWiki 系统之前,您必须先启用该功能。請确保Apache Web服务器进程的上载目录已正确配置并可写入。然后将 $wgEnableUploads 设置为 true,以允许在web用户界面中上传。

即,这是 includes/DefaultSettings.php 中的一些示例代码,用于放在LocalSettings.php之中:

$wgUploadPath       = "$wgScriptPath/uploads";      ## Wiki 1.5 defaults to /images, but allows more than just images
$wgUploadDirectory  = "$IP/uploads";                ## Wiki 1.5 defaults to /images, but allows more than just images

## To enable image uploads, make sure the above '$wgUploadPath' directory is writable by Apache User or group.
## ''(i.e.  chmod og+w uploads images)''  then the following should be true:
$wgEnableUploads       = true;

$wgUseImageMagick      = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

## If you want to use image uploads under safe mode, create the directories images/archive, images/thumb and
## images/temp, and make them all writable. Then uncomment this, if it's not already uncommented:
$wgHashedUploadDirectory = false;

如果您希望能够动态调整图像大小以支持缩略图,MediaWiki 需要一个有效的 ImageMagick 安装。 在系统上安装并测试 ImageMagick 后,将 $wgUseImageMagick 设置为 true。 确保 $wgImageMagickConvertCommand 指向安装中 convert 命令的正确位置,该命令可由 web 服务器进程执行,并且 $wgMaxShellMemory 足够大。 请参阅手册:图像管理#图像缩略图 了解详细信息和故障排除。

此外,您可能希望修改已接受的扩展列表,该列表存储在 $wgFileExtensions 内:

$wgFileExtensions = [ 'png', 'jpg', 'jpeg', 'ogg', 'doc', 'xls', 'ppt', 'mp3', 'sxc', 'pdf' ];

如果 ImageMagick 输出类似于以下内容的错误消息:

致命错误:mime_magic 无法初始化,magic 文件在 includes/MimeMagic.php 不可用,第 506 行

然后尝试将以下行添加到 LocalSettings.php

$wgMimeDetectorCommand = "file -bi";

跨wiki支持

MediaWiki内置了跨wiki支持,但你需要配置内部链接所需使用的前缀。 该前缀通常与$wgSitename 相同,但一旦你需要更改,可将$wgLocalInterwikis 变量设置为你想要的名称。


用户界面语言

MediaWiki 允许使用多种本地化用户界面语言,而不是默认的英语。如果你想以非英语语言运行你的 wiki,请将 $wgLanguageCode 变量设置为适当的语言代码(例如,"es"表示西班牙语,"zh"表示漢語等)。

您可以通过目录languages/i18n中的文件使用任何一种语言。例如,如果您找到了es.json,那么就可以用 "es"来表示西班牙语。不要使用带大写字母的 "Es"。虽然这看起来似乎可行,但并非所有文本都會被翻译。

更改语言代码后,您需要运行一个 PHP 脚本使其生效。 在终端窗口中,切换到 wiki 目录,切换到 maintenance 文件夹,然后输入 php rebuildMessages.php --rebuild 。 在 Windows 环境下,PHP 文件夹可能不在 PATH 环境变量中,因此必须在 php 前加上程序路径。

并非所有语言都支持。 请参阅TranslateWiki上的翻译统计,了解支持哪些语言以及支持程度的最新列表。 该列表反映的是 MediaWiki 核心的当前状态,因此根据你使用的版本可能会有差异。

设置网站的版权

$wgRightsPage不是空的,版权/许可声明中的链接将链接到您网站上的该页面。若$wgRightsPage是空的,则版权/许可声明中的链接将指向$wgRightsUrl

想要修改网站的版权声明,请在LocalSettings.php中添加类似内容:

$wgRightsPage = "YourWiki:Copyright";
$wgRightsText = "copyright YourWiki";

從此以後,請编辑MediaWiki:Copyright以提供适当的信息,它是使用其中的"$1"来标明链接到版权页的位置。

例如:设置一個知识共享 许可

设置知识共享许可协议的步骤如下:

<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">
<img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights30.png" />
</a>
This work is licensed under a
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License</a>.
  • 对于$wgRightsURL,输入第一个锚点的href信息:
$wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/";
  • 对于$wgRightsText,输入第二个锚点链接的文本(在Wiki变量中添加"a",以获得语法更正确的版本)
$wgRightsText = "a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License";
  • 对于$wgRightsIcon,在第一个锚点中输入img链接的src信息。您需要将徽章复制到自己的网站,而不是使用知识共享网站上的徽章。
$wgRightsIcon = "http://creativecommons.org/images/public/somerights30.png";
  • 要使用RDF元数据有关版权的内容,请在您的LocalSettings.php中添加以下一行或两行:
$wgEnableCreativeCommonsRdf = true;
$wgEnableDublinCoreRdf = true;


自定义命名空间

通过声明$wgExtraNamespaces 、修改$wgNamespacesWithSubpages $wgNamespacesToBeSearchedDefault ,可以在MediaWiki安装中添加额外的命名空间;通过声明$wgNamespaceAliases 数组,可以添加命名空间别名。 請留意不要在该命名空间中设置任何已命名的页面,例如,如果您有一个名为"Technical:Support "的页面,而您创建了Technical: 命名空间,那么该页面不仅会丢失,而且您也无法将其从 Special:Allpages中移除。 要解决这个问题,请删除命名空间,将"Technical:Support"移至主空间的"Support",删除重定向,重新插入命名空间,然后将其移回"Technical:Support"。 请参见自定义命名空间 以获取更多相关信息。

皮肤

站点的默认皮肤可以通过$wgDefaultSkin 进行修改。

参见