手册:常问问题

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page Manual:FAQ and the translation is 95% complete.

Other languages:
български • ‎català • ‎dansk • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎français • ‎galego • ‎ગુજરાતી • ‎עברית • ‎magyar • ‎Bahasa Indonesia • ‎italiano • ‎日本語 • ‎한국어 • ‎മലയാളം • ‎Nederlands • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎русский • ‎Türkçe • ‎中文
需要即时支援    即时支援
有关上述内容的更多信息,请参见== 聯繫交流 ==communication
关于MediaWiki使用的常见问题解答(FAQ)。 如果您的问题在这里和MediaWiki文档都找不到答案的话,可以试试到IRC 聊天频道支持论坛寻求帮助。 有问题?

Contents


快捷方式: FAQ

一言以蔽之

MediaWiki, Wikimedia(维基媒体基金会), Wikipedia(维基百科)和wiki间的区别是什么?

这个问题经常被问到,请参阅Wikipedia、Wikimedia、MediaWiki 和 wiki 的区别页面获得更详细的答案.

我能将MediaWiki用于某个用途么?

MediaWiki是自由软件,这意味着你可以以任意方式使用它而不需要法律上的许可. 更進一步言,MediaWiki的授權條件只適用於程式本身。 这意味着尽管很多 Wiki 采用自由的协议授权,但这不是强制的。Wiki 上内容的授权协议又你自己决定。 当然,作为支持维基百科运行的软件而发展起来的项目,我们鼓励你使用一个自由许可证授权你的 wiki 上的内容,但是这不是必须的.

如果你希望修改MediaWiki软件,没有问题!但是这里有一些限制,查看GNU 通用公共许可证第二版的全文了解详细信息. 因为MediaWiki是免费使用的,在适用的法律允许的范围内没有担保责任。

安装和设置

到哪里里下载MediaWiki?

点击这里前往下载页.你会下载到一个.tar.gz归档文件. 你也可以 通过Git从我们的版本库中下载 .

如何安装MediaWiki?

安装MediaWiki的预计时间为10到30分钟,包括上传与复制文件,和运行设置脚本. 请参阅安装指南,你也可以在那里找到系统需求.

能通过软件包管理器安装MediaWiki吗?

大部分Linux发行版都会以分发包的格式提供MediaWiki软件。 MediaWiki开发团队认为您应该向您的Linux发行版提供者咨询安装与配置的事宜。 负责维护这些分发包的独立社群和公司应该向您提供安装指南。

但是请注意因为软件源中的MediaWiki可能不是最新的,所以请密切关注你所使用的扩展的兼容性。

參見: Software bundlesSoftware bundles

我能在一个服务器上运行多个MediaWiki网站吗?

只要满足下列条件,您就可以在一台服务器上安装多个wiki:

  • 您的每一个wiki使用各自不同的数据库

或者

  • 您的每一个wiki的数据库前缀不相同(如果您用的是PostgreSQL,在不同的模式或用户下,也能达到这一效果)

要了解这些选项的相关信息,可分别参见$wgDBname$wgDBprefix

要了解设置wiki家族的相关信息,可参见Manual:Wiki家族

要了解将多个wiki设置为使用相同服务器、数据库与资源的其他方法,参见来自Steve Rumberg存档)用户的更深层的解释与进一步的意见。

MediaWiki能在安全模式下工作吗?

可以,但其功能会受到一定限制。 参见安全模式

MediaWiki需要Shell访问吗?

终端访问(SSH访问)在安装MediaWiki的过程中并不是必须的,但我们强烈推荐你这么做。 如果不能进行终端访问,您可能难以对您的wiki进行备份,或难以将它升级到更新的版本。 如果完全脱离终端访问,您将不能完成一些维护任务。 許多的擴充程式可以良好的實作殼層存取。

如何安装扩展?

参见Manual:Extensions获取安装插件与编写插件的相关信息。 见Category:插件以寻找已有的插件。

如何添加额外的名字空间?

参阅Creating a custom namespace.

如何启用文件上传?

文件上传是MediaWiki常用的功能之一,但在目前所有的发行版中都被默认关闭了。 要启用它们,首先要让网站服务器上的上传文件夹(默认为images)可被写入(chmod 777或允许Apache用户写入内容,等等),然后在LocalSettings.php中将$wgEnableUploads设为true值(例如“$wgEnableUploads = true;”)。 如果你在上传时遇到了一个"failed to mkdir" (无法创建文件夹)错误,你可能需要调整你的服务器上的文件权限。

參見: 手册:配置文件上传Manual:Configuring file uploads

如何在MediaWiki中显示数学公式?

MediaWiki允许用户插入数学公式。 参见Extension:Math获取安装指南。

如何设置我的Wiki的时区?

请参阅: Manual:Timezone

如何强制刷新一个缓存页面?

有时您需要刷新被缓存的页面,比如当页面的导航栏发生了变化后。在页面的动态URL后加上&action=purge即可。

例如:http://www.mediawiki.org/w/index.php?title=Main_Page&action=purge

或在页面的短型URL后加上?action=purge

例如:http://www.mediawiki.org/wiki/Main_Page?action=purge

參見: 手册:刷新缓存Manual:Purge, 手册:index.php的参数Manual:Parameters to index.php

如何完全停用缓存?

将下列语句加入LocalSettings.php即可:

$wgEnableParserCacheManual:$wgEnableParserCache = false;
$wgCachePagesManual:$wgCachePages = false;

如何允许上传其他格式的文件?

MediaWiki 使用$wgFileExtensions来限定允许上传的文件格式. 例如,要允许用户上传PDF格式文件,请将下面一行增加到你的LocalSettings.php中:

例如,要允许用户上传PDF格式文件,请将下面一行增加到你的LocalSettings.php中:

$wgFileExtensions[] = 'pdf';

可以像下面这样一次添加多个文件类型:

$wgFileExtensions = array_merge($wgFileExtensions, array( 'pdf', 'txt', 'mp3' ));
參見: 手册:配置文件上传Manual:Configuring file uploads

"文件已损坏或者扩展名不正确"

有些用户报告说,在向已允许扩展名列表中增加文件格式后,软件会发生错误。 出错后的文字类似于下方:

文件已损坏或存在无效扩展名。请重新检查并上传文件。

可能的解决方案:

  • 设定$wgMimeDetectorCommand的值,例如:在Unix或Linux,您可以将它设为 :
    $wgMimeDetectorCommand = "file --brief --mime";
  • 编译/安装PHP插件fileinfo
    • Fedora - yum 安装 php-pecl-Fileinfo
也请参阅: Manual:Mime type detectionManual:Mime type detection

安装程序没创建一个管理员用户?

有时可能因为安装程序没有成功运行或是用户表丢失的缘故导致没有管理员账户, 这里有几个修复的方法:

maintenance/createAndPromote.php

  • 对于1.16以前版本的MediaWiki,确保AdminSettings.php 配置正确(参阅AdminSettings.sample)
  • 在shell中运行 maintenance/createAndPromote.php --username <新用户名> --password <密码> . 要让新创建的用户既成为管理员又成为行政员,加入--bureaucrat 参数.

这会创建一个新用户并授予管理员权限, 运行 createAndPromote.php--help获得帮助.

在数据库中修改

  • 用一般方法注册一个账户 (Special:UserLogin).
  • Special:Preferences 中查看用户ID.
  • 在数据库中执行下列SQL语句:
    • INSERT INTO user_groups ( ug_user, ug_group ) VALUES ( <id>, 'bureaucrat' ), ( <id>, 'sysop' );
<id> 用你刚刚查阅的用户ID替换.
注意: 如果LocalSettings.php中定义了 $wgDBprefix ,记得加在表名前. 例如 $wgDBprefix = "XYZ"时的表名是 XYZuser_groups.

临时允许任何人修改用户权限,然后给初始化时创建的用户分配权限

警告 警告: 最好在进行这项操作时关闭你的wiki的外部访问, 因为此时你的wiki更容易受到破坏.

为了能修改用户权限,这个操作的关键是允许所有用户修改权限.

  • 用一般方法注册一个账户 (Special:UserLogin), 然后登录.
  • 在LocalSettings.php中加入下面一行
    • $wgAddGroups['user'] = true;
  • special:userrights中将新创建的用户添加到管理员与行政员组.

$wgAddGroups['user'] = true; 一行从LocalSettings.php中移除。 此步非常重要,因为如果不移除将导致任何人都可以修改用户权限,这很危险。

如何重置密码?

参阅 Manual:Resetting passwords

如何创建或修改跨wiki链接?

参阅 Manual:Interwiki

如何让显示的URL更短?

(例如用 /wiki/Article_Name 而不是 /w/index.php?title=Article_Name)

参阅 Manual:Short URL

我能像目录一样组织页面吗,像/wiki/subdir/PageName这样?

参阅 Manual:$wgNamespacesWithSubpages, Help:Subpages

下载和使用MediaWiki是免费的吗?

是的,在自由软件意义下的自由。 参见Project:Copyrights了解本站已有内容在许可协议方面的问题。

如何管理用户权限?

参见手册:用户权限以获取一般信息。 参见Manual:访问控制获取限制访问的方法与措施。

如何阻止匿名用户编辑页面?

建议修改$wgGroupPermissions. 添加下面一行到LocalSettings.php:

$wgGroupPermissions['*']['edit'] = false;

通过Extension:AbuseFilter,管理员可以临时阻止匿名编辑.

參見: 拒絕存取Manual:Preventing access#Restrict anonymous editing, Manual:User rightsManual:User rights

如何阻止匿名用户创建页面?

$wgGroupPermissions['*']['read'] = false;

也请参阅 Manual:$wgWhitelistRead. 更多信息请参见Manual:Preventing access#Restrict viewing of all pages

如何阻止创建账户?

  • 添加下面一行到LocalSettings.php的最下面:
$wgGroupPermissions['*']['createaccount'] = false;

更多信息请参见Manual:Preventing access#Restrict account creation

如何在注册时要求提供电子邮件地址?

参阅Manual:$wgEmailConfirmToEdit

如何让MediaWiki只读?

MediaWiki版本: 1.5
参阅Manual:$wgReadOnly

如何修改默认的用户设置?

MediaWiki版本: 1.4

MediaWiki 将默认的用户选项保存在语言文件中,例如languages/Language.php. 但是和DefaultSettings.php一样,别修改它,做参考就好.

查找你要修改的选项 在Language.php,例如:

 /* private */ $wgDefaultUserOptionsEn = array(
        ...
        'searchlimit'  => 20,
        ...
 )

要改成50的话,在LocalSettings.php里添加:

 $wgDefaultUserOptions = array( 'searchlimit' => 50 );

注意是设置$wgDefaultUserOptions,而不是$wgDefaultUserOptionsEn. 任何对$wgDefaultUserOptions的设置将会覆盖这些设置的语言文件。

要改变默认搜索的名字空间,在LocalSettings.php里设置$wgNamespacesToBeSearchedDefault. 例如要默认搜索主名字空间和分类名字空间:

$wgNamespacesToBeSearchedDefault = array(
    NS_MAIN => true,
    NS_CATEGORY => true,
);

某些情况下,你在改变默认设置后希望改变现有用户的设置.

要这样做的话,在maintaince目录运行userOptions.php. 第一次运行建议加入 "--dry" 参数(这个参数用来模拟运行,不会修改数据库。)。

php userOptions.php --dry --nowarn searchlimit --old 20 --new 50

另外,在进行实际操作前建议备份数据库。

參見: Manual:$wgDefaultUserOptionsManual:$wgDefaultUserOptions

如何优化MediaWiki的运行速度?

參見: Manual:Performance tuningManual:Performance tuning

如何启用搜索建议?

请参阅: Manual:Enabling autocomplete in search box

升级

请参阅: Manual:Upgrading

移动

能把我的wiki移动到另一台电脑上吗?

是的。 应该可以, 实质上就是备份你的安装然后"还原"到一台新电脑上. 然后对配置进行一些适当的调整以适合新服务器的需要.

那么,如何做?

跟随手册:移动wiki上的指令即可。

定制界面

如何修改左上角的标志?

左上角的标志是由LocalSettings.php中的$wgLogo选项决定.

有两个方法可以修改:

  1. 通过标准上传界面向你的wiki上传一张图片, 这样以后修改起来也容易,所以你可能希望保护它防止被篡改.
    LocalSettings.php添加$wgLogo参数, 例如:
    $wgLogo = "{$wgUploadPath}/6/62/mylogo.png";
    
  2. 或者向服务器直接上传一张图片.
    LocalSettings.php添加$wgLogo参数, 例如:
    $wgLogo = "{$wgScriptPath}/mylogo.jpg";
    
    (这个例子中图片和LocalSettings.php在一个文件夹中.)

要改变某些页面的标志,覆盖#p-logo的background-image属性,或者使用像Extension:LogoFunctions这样的扩展.

小心! 小心: 别覆盖默认的logo (/skins/common/images/wiki.png); 因为升级时会被覆盖.
135x135px 或 150x150px是合适的logo大小. 最大的logo大小是 ~160x160px(Vector), ~155x155px(Monobook). 过大的部分会被裁剪.

如何编辑wiki的CSS?

别直接编辑像 common.less 一类的CSS文件,因为这样会使你日后的升级变得困难 (例如可能会被覆盖)。 要改变全站的样式,编辑MediaWiki:Common.css,要改变特定皮肤的样式(例如 Vector ),编辑MediaWiki:Vector.css

MediaWiki 預設 CSS (main.css),會被 MediaWiki:Common.css 和皮肤内置的样式表文件覆盖。

如何隐藏左侧的导航栏

换句话说,你希望内容占据全部的宽度来隐藏logo和左侧导航?

要隐藏它们,将下面的代码添加到MediaWiki:Common.css中.

#column-content { margin: 0 0 .6em 0; }
#content { margin: 2.8em 0 0 0; }
#p-logo, .generated-sidebar, #p-lang, #p-tb, #p-search { display:none; }
#p-cactions { left: .1em; }

要只在用户按下F11时隐藏,将下面的代码添加到 MediaWiki:Common.js:

document.onkeydown = function( e ) {
	if( e == null ) e = event
	if( testKey( e, 122 ) ) { //F11
		appendCSS('#column-content {margin: 0 0 .6em 0;} #content {margin: 2.8em 0 0 0;} #p-logo, .generated-sidebar, #p-lang, #p-tb, #p-search {display:none;} #p-cactions {left: .1em;} #footer {display:none;}');
		return false;
	}
}

function testKey( e, intKeyCode ) {
	if( window.createPopup )
		return e.keyCode == intKeyCode
	else
		return e.which == intKeyCode
}

如何隐藏页面底部的分类列表?

添加这一行到你wiki的MediaWiki:Common.css

.catlinks { display: none; }

我能自定义左侧顶部的标志吗,如果可以的话,怎样做?

商標圖示部分為一個程式片段而沒有 Body 的部分。 它可以由 p-logo 的 id 鑑定。 背景圖片使用 $wgLogo 變數, $wgLogo 變數定義在 DefaultSettings.php 之中。 為只為相對於網頁伺服器得跟目錄而非系統根目錄。 從 LocalSettings.php 重新定義這個去更換圖像。 如果設定錯誤則將不會有圖像出現在網頁上,如果發生此一狀況,請先檢查網頁伺服器的錯誤紀錄(error log),並根據錯誤原因做調整。 然而 p-logo 如果沒有被裁切的剛好的話,尺寸就必須要比標準尺寸大。 大小設定在 main.css (在 Monobook 裡面)的 p-logo 下,預設的設定是:

#p-logo {
	z-index: 3;
	position: absolute; /*needed to use z-index */
	top: 0;
	left: 0;
	height: 155px;
	width: 12em;
	overflow: visible;
}

注意,如果您使用不同大小的 logo 標誌,而想要去改面 CSS 的話,請不要更動到 MediaWiki 原本的 CSS 程式碼。 除了可以用 MediaWiki:Monobook.css 改變 monobook 的外觀,以及用 MediaWiki:Vector.css 改變 vector 的外觀,MediaWiki:Common.css 可以同時滿足這些功能。

改变标志的大小

要注意因為 logo 上面還附加了一個標籤,所以如果您要減少 logo 的標籤程式碼,要記得必須要和 CSS 中的 #p-logo #p-logo:hover 的效果相容。 这些东西的默认设置是:

#p-logo a,
#p-logo a:hover {
	display: block;
	height: 200px;
	width: 12.2em;
	background-repeat: no-repeat;
	background-position: 35% 50% !important;
	text-decoration: none;
}

如何改变点击左上角的标志后跳转到的页面?

默认情况下点击logo会返回到首页,要指定哪一个页面是首页,编辑MediaWiki:Mainpage. 要在点击logo时前往任意的其他页面(不一定是你的wiki),你可以向LocalSettings.php中增加一个hook来覆盖默认设置.

若想使 site-logo 的連結可以被外部任意 URL 連結,您可以在 LocalSettings.php 去掛勾(hook) 到你的 site-logo 去覆寫原本的 logo 主頁面。

/* Change the main page url used in things like the logo to an absolute url */
$wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'lfChangeMainPageURL';
function lfChangeMainPageURL( $sk, &$tpl ) {
	$tpl->data['nav_urls']['mainpage']['href'] = "http://www.your-desired-url.com/"; // Point the main page url to an absolute url
	return true;
}

/* Change the main page url used in things like the logo to a url of another page on the wiki */
$wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'lfChangeMainPageURL';
function lfChangeMainPageURL( $sk, &$tpl ) {
	$tpl->data['nav_urls']['mainpage']['href'] = Title::newFromText('ThePage')->getLocalURL(); // Point the main page url to a wiki page's url
	return true;
}

如何改变地址栏的图标 (favicon)?

  • 把favicon.ico上传到你的服务器的根目录.
  • 或者编辑LocalSettings.php中的$wgFavicon,增加 $wgFavicon = "$wgScriptPath/path/to/your/favicon.ico";

参阅Manual:$wgFavicon获得更多细节.

提示: favicon 的大小应为16x16 / 32x32 像素.

Rewrite 规则

如果你有用URL重写规则从URL中移除"index.php",你也需要为.ico加个例外.把下面一行加入到.htaccess中: 把下面一行加入到.htaccess中:

RewriteRule .*\.ico$ - [L]

这个规则必须在index.php的规则之前.

注意区分大小写

记得favicon.ico的文件名全是小写("favicon.ico",而不是"Favicon.ico"). 大多数的服务器(例如类UNIX系统)可能找不到有大写的文件名.

如何定义导航栏?

使用 Vector 皮肤的每一个页面左边是导航条,其内容由您的wiki上的MediaWiki:Sidebar 页面决定. 定制这些内容的相关信息,请参看Manual:Interface/Sidebar.

如何在每一个页面上放置一个消息(站点通告)?

MediaWiki:Sitenotice放置一些文本.内容会显示在所有的页面上方.

你也可以在MediaWiki:Anonnotice上放置一些文本,当用户未登录时会出现在页面的上方. 建議在使用者登出之後,改成提供匿名使用者可見的將提醒功能,以確保匿名使用者能仍收到應有的提醒。

如何指定首页?

默认的首页名称为"首页".编辑MediaWiki:Mainpage来改变. 可以從 MediaWiki:Mainpage 去修改。

有时边栏中的"首页"链接可能没有改变,这时需要编辑 MediaWiki:Sidebar.

如何改变首页的标题?

用移动页面选项移动首页即可.

通常你可能期望指定哪个页面是首页.

如何在首页隐藏标题?

MediaWiki默认没有隐藏首页标题的功能(参阅任务8129),你可以用CSS 或者NoTitle extension完成.

将下面一行添加到你wiki上的MediaWiki:Common.css中:

body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }

如果你的MediaWiki版本非常旧,或是你移动了首页却没更新MediaWiki:Mainpage,或是某些不支持这项设定的皮肤上,这可能无法工作

例如,如果您使用的為邏輯語言,那 body 的標籤將會如此:


<body class="mediawiki ltr sitedir-ltr ns-4 ns-subject page-uikipedi_as_ralju skin-vector action-view">

因此您需要加入這一行在 MediaWiki:Common.css 之中:

body.page-uikipedi_as_ralju.action-view h1.firstHeading, body.page-uikipedi_as_ralju.action-submit h1.firstHeading { display: none; }

如果你想隐藏掉首页在特定名字空间中的标题,比如“Help:首页”,则需要在你wiki的MediaWiki:Common.css中添加以下内容。

body.page-Help_Main_Page.action-view h1.firstHeading, body.page-Help_Main_Page.action-submit h1.firstHeading { display: none; }

Note the difference: body.page-Help_Main_Page in comparison to body.page-Help:Main_Page. The latter will not work.

如果無效,您或許使用了在此不支援的外觀語法,而或是您沒有更新 MediaWiki:Mainpage 就移動了主頁面 (MainPage) 的位置,在或者是您的 MediaWiki 沒有更新到最新版本。

如果你的皮肤不是使用h1标签和firstHeading类选择器的话,你需要自行调整.

如何隐藏目录?

目录 (TOC) 会在大于四个标题的页面上显示, 当然也有办法隐藏.

==== 某个页面 ====
把魔术字 __NOTOC__ 放在页面上.
所有页面
NoTOC扩展
或者
添加
.toc, #toc { display: none; }
MediaWiki:Common.css.
.toc, #toc { display: none; }
单个用户
用户可以把同样的规则添加到用户样式表中(例如 common.css).
MediaWiki版本: 1.22
Gerrit change 99430
参数设置中曾经有一个参数可以隐藏目录,这个功能在MediaWiki1.23中被移除了. (phab:T54813).

如何改变界面文字?

使用 MediaWiki 命名空間 (namespace) 去轉換 介面 (Interface) 文字。 針對英語的在地化版本,可使用 MediaWiki:Englishmessagename:而針對其他語言的在地化版本,則可以使用 MediaWiki:Englishmessagename/languagecode 。 從 1.9 版本之後頁面的信息預設值就不再是原本的預設了。 創建頁面的時候,編輯區域預設會自動填滿。 在創建的新頁面會覆寫到原本的預設檔案時,建議將預設檔案令存檔名 (如 filename.default) 來做區隔及還原。 参见Help:系统消息Help:System message

如何改变界面文字语言?

要改变默认的界面的语言,在LocalSettings.php改变$wgLanguageCode的值,例如:

$wgLanguageCode = "fr";

您可能也需要绕过浏览器缓存来看见更改。

新的默认值会对没有更改过这项设置的用户生效.

Extension:UniversalLanguageSelector提供了一种让用户自行选择显示语言的方法,Extension:Translate可以让用户翻译wiki上的内容为其他语言.

旧版本的MediaWiki可能不会更改现有用户的设置,现有用户可能需要修改自己的参数设置.

要修改所有用户的默认设置,运行 userOptions.php 维护脚本. 下面的例子会把现有用户的默认语言由英文变为法文:

php userOptions.php language --old en --new fr

如何去除某个标签(例如"文章"或"编辑")?

请参阅: User:Subfader/Hide_page_tabs多获得些功能.

添加下一行到MediaWiki:Common.css中:

li#ca-edit { display: none; }

查看源代码来知道要移除的标签的选择器ID.

注意: 这个设置只会在Monobook(或其分支,例如Vector)皮肤上工作,它也不会阻止用户编辑, 参阅Manual:User rights来获得阻止用户编辑的方法.

如何增加一个标签?

旧版本的MediaWiki可以通过Extension:DynamicTabs来实现 (也可以通过Manual:Hooks/SkinTemplateNavigation编写自己的扩展):

下面的实例会移除讨论标签并 添加一个回到首页的标签,假设它叫做 extensions/AR-Tabs.php:


MediaWiki版本: 1.21
<?php
if( !defined( 'MEDIAWIKI' ) ){
	die( "This is not a valid access point.\n" );
}

$wgHooks['SkinTemplateNavigation'][] = 'replaceTabs';
function replaceTabs( &$skin, &$links) {  
	// Remove the talk action
	unset( $links['namespaces']['talk'] );
	$maintitle = Title::newFromText( wfMessage( 'mainpage' )->inContentLanguage()->text() );
	// Add an additional link
	$links['namespaces']['main'] = array(
		'class' => false, // false or 'selected', defines whether the tab should be highlighted
		'text' => wfMessage( 'sitetitle' )->text(), // what the tab says
		'href' => $maintitle->getFullURL(), // where it links to
		'context' => 'main',
	);
	return true;
}

然后把下面一行添加到LocalSettings.php中:

require_once("extensions/AR-Tabs.php");

如何去除某个页面上的某个标签?

MediaWiki版本: 1.9

编辑MediaWiki:Common.css,下面的例子会移除首页上的讨论标签:

body.page-Main_Page li#ca-talk { display: none !important; }

需要管理员权限来修改MediaWiki:Common.css

見: Manual:Hide page tabsManual:Hide page tabs

去除所有页面上的某一个标签

MediaWiki版本: 1.9

编辑MediaWiki:Common.css,下面的例子会移除所有页面上的讨论标签:

#ca-talk { display:none!important; }

其他需要移除的標籤還有 #ca-history, #ca-viewsource, #ca-view (條目), #ca-nstab-main (首頁), #ca-viewsource.

下拉菜单里的标签id有 #ca-watch, #ca-move, #ca-delete.

需要管理员权限来修改MediaWiki:Common.css

如何对匿名用户隐藏"编辑段落"链接?

改变$wgDefaultUserOptions的值可以实现,

编辑LocalSettings.php,加入下面一行:

$wgDefaultUserOptions ['editsection'] = false;
另參閱如何阻止匿名用戶編輯頁面?

如何去除"关于此IP地址的讨论"按钮(例如设置了 $wgDisableAnonTalk=True; 以后)?

可以在你的 Wiki 的 MediaWiki:Common.css 中添加这些来达到隐藏的效果:

#p-personal #pt-anonuserpage {
    display: none;
}

或者在 LocalSettings.php 中用 PersonalUrls hook 为匿名用户移除讨论页:

$wgHooks['PersonalUrls'][] = 'lfRemoveAnonUserpageLink';
function lfRemoveAnonUserpageLink( &$personal_urls, $title ) {
	unset( $personal_urls['anonuserpage'] );
	return true;
}

如何移除"登录/创建账户"链接?

LocalSettings.php添加下面的代码可以从个人工具栏中移除"登录/创建账户"链接:

$wgHooks['PersonalUrls'][] = 'lfRemoveLoginLink';
function lfRemoveLoginLink( &$personal_urls, $title ) {
	unset( $personal_urls['login'] );
	unset( $personal_urls['anonlogin'] );
	unset( $personal_urls['createaccount'] );
	return true;
}

如何限制某些操作和访问特殊页面?

注意: MediaWiki 不是为这种用法设计的! 必須了解以下的解答是一種只在 Apache 伺服器上才有作用的 Hack 手法。 謹記,這個系統並非完全安全,只是一個稍微進一步隱藏連結的方式。

在伪静态化 Wiki 的过程中限制操作和特殊页面的使用可能有用: 例如你可能希望外部访问时像一个静态网站(没有历史,讨论,编辑功能等等),而内部访问时如平常一般。

在按照下面的方法隐藏链接以后,你可以在 Apache 上使用rewrite rules 限制某些操作和特殊页面的访问:

# Lock down the site (disable MediaWiki commands)

RewriteEngine On

#RewriteLog /tmp/rewrite.log

#RewriteLogLevel 9

## See http://www.mediawiki.org/wiki/Manual:Parameters_to_index.php#Actions

RewriteCond %{QUERY_STRING} (.*action=.*)
RewriteRule .* http://www.my.domain.com?

RewriteCond %{REQUEST_URI} !^/index.php/Special:Search
RewriteCond %{REQUEST_URI}  ^(.*Special:.*)
RewriteRule .* http://www.my.domain.com?

## Catch a trick...
RewriteCond %{QUERY_STRING} ^(.*Special:.*)
RewriteRule .* http://www.my.domain.com?

在上述中,此一 http 請求: 'http://www.my.domain.com/wiki/Page_name?action=edit', 為例。可以簡易寫成 'http://www.my.domain.com'. 相同的,任一頁面在特殊的命名空間之中(除了 Special:Search ),會被寫成 'http://www.my.domain.com'. 謹記,這為一個黑客手法,初衷并不是为了保护某个页面。

您需要調整以上的規則以符合您特殊 URL 的命名模式。

另外的问题是考虑封锁通过 API 获得 wiki 页面的功能。

如何编辑系统消息?

Special:Allmessages包含系统消息的列表,可以编辑.

如何改变页脚?

参阅Manual:Footer and Manual:Configuration settings#Copyright

如何移除页脚中的"Powered by MediaWiki"或者其它图像?

编辑MediaWiki:Common.css:

#footer-poweredbyico { display: none; }

如果您想在1.17或更新的版本中完全移除它,您可以在您的LocalSettings.php中使用$wgFooterIcons

unset( $wgFooterIcons['poweredby'] );


MediaWiki版本: 1.16

对于1.16及以前的版本,你需要使用hooks:

$wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'lfRemovePoweredBy';
function lfRemovePoweredBy( $sk, &$tpl ) {
	unset( $this->data['poweredbyico'] );
	return true;
}

Note that this will also remove other powered-by icons, e.g. also the one coming from BlueSpice.

参阅$wgFooterIcons获得关于自定页脚图标的更多信息..

如何自订签名消息(例如增加一个回复链接)?

您可以在MediaWiki:SignatureMediaWiki:Signature-anon自定义签名.

例如 [[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]]) 会放置一个讨论页链接, [[{{ns:user}}:$1|$2]] ([{{fullurl:{{ns:user_talk}}:$1|action=edit&section=new}} Reply]) 会放置一个直接增加新段落的链接.

用户可以通过参数设置自定义自己的签名.

能改变标题吗,怎样做?

大部分你希望更改的内容可以在MediaWiki名字空间中找到,

前往Special:AllMessages并搜索你希望更改的文字获得页面的位置,要编辑的 话还需要管理员权限.

要改变在浏览器标题栏中显示的标题,编辑MediaWiki:Pagetitle. 像编辑其它 wiki 页面一样编辑这个页面。

在最近的MediaWiki版本中,默认的设置为MediaWiki:Pagetitle is $1 - {{SITENAME}}.

如果$wgSitename在LocalSettings.php是正确的但是{{SITENAME}}还是错的,就可能是你在使用一个可以把$wgSitename设置为维基百科的音译的用户贡献的语言文件。 编辑语言文件来改正这个错误。 例如,希伯来语言的文件在languages/LanguageHe.php在你的维基目录。

记得在改变后清除你的浏览器缓存来查看改变.

MediaWiki能自动首字母大写$wgSitename吗?

可以, 这可通过使用$wgCapitalLinksManual:$wgCapitalLinks配置设置更改。

如何在新窗口打开外部链接?

参阅Manual:$wgEmailConfirmToEdit

我能阻止MediaWiki格式化文本吗?

用"<nowiki>"标记包围不希望格式化的文本即可.

例子:

svn co <nowiki>http://svn.example.com/myproject/</nowiki>

结果:
svn co http://svn.example.com/myproject/

如何强制用户先预览再提交编辑?

请参阅: Manual:Force previewExtension:ForcePreview

如何在编辑页面上增加更多按钮?

请参阅: Manual:Custom edit buttons

如何在编辑器中增加插入字符的链接?

安装并配置Extension:CharInsert.

如何在自己的wiki上使用维基百科的默认皮肤(例如Vector)?

MediaWiki版本: 1.16

Monobook 是 MediaWiki 默认的皮肤,1.17 以后换成了 Vector。 参阅Manual:$wgDefaultSkin 来设置你wiki的默认皮肤.

如何在显示打印版本时不显示外部链接?

将下面的代码添加到你的wiki上的MediaWiki:Print.css中:

#content a.external.text:after,
#content a.external.autonumber:after {
	content: none;
}

这会覆盖 MediaWiki 源代码中的默认样式设置。 需要更多信息,请参考Manual:CSS

或者你希望在打印版本中为外部链接加下划线:

#content a.external {
    text-decoration: underline !important;
}

如何改变首页上的标签的名称?

编辑"MediaWiki:Mainpage-nstab".

记得清除缓存来查看结果. 不要忘记保存页面。

基本使用

如何编辑页面?

点击页面上的 编辑 链接即可编辑。 在默认的 Vector 皮肤中,它是在条目内容上方的一个标签 會顯示一個包含源代码的表單。 當你完成編輯修改,點下 Save 按鈕提交你的修改。

參見: Help:编辑页面Help:Editing pages

如何创建一个页面?

有几个方法创建一个新页面:

  • 创建一个指向它的内部链接,然后点击它.
  • 转到你希望创建的页面,例如 http://www.example.com/index.php?title=New_page ,然后点击"创建" 或 "创建源代码" 链接.

在某些wiki上,失败的搜索中会包含创建页面的链接.

參見: Help:创建新页面Help:Starting a new page

能删除一个旧版本的页面吗?

旧版本会为了方便复查或回退更改而保留在数据库中, 不过管理员可能会因为法律原因或为了减少数据库占用的空间而希望删除某些版本.

  • 管理员可以删除整个页面再回=恢复某些版本
  • Oversight (也称作HideRevision) 扩展可以用来去除指定的修订历史.(MediaWiki <1.16).
  • 新版的 MediaWikis (1.14+)中,可以启用RevisionDelete(修订版本删除)功能来允许有权限的用户从编辑历史中移除一个版本.
  • maintenance/deleteOldRevisions.php 维护脚本 可以进行大量删除修订版本.
另外參見: Manual:Removing embarrassmentManual:Removing embarrassment

如何删除某个页面的某些版本?

请參見: RevisionDeleteRevisionDelete

或者你可以删除整个页面再恢复你需要的版本.

有没有一个编辑教程?

这里和维基媒体计划上有些教程可以参考: 另外也有標籤語法的慘考,如 「 Meta 」。

如何查看某个页面的打印版本?

MediaWiki内置了一套用于打印的css样式表,你可以在你的浏览器中打开打印预览窗口来查看.

或者你可以使用边栏的打印版本链接(如果启用了Collection扩展,则是打印/导出).

如何使用模板?

参阅Help:Templates

我能使用维基共享资源上的多媒体文件吗?

是的,鼓励你通过设置$wgUseInstantCommons来使用.

另外参見: InstantCommonsInstantCommons

如使用一个模板作为签名?

参数设置里有一个“原始签名”的选项, 然而输入框的长度不够长。 如果你想要更多呢?

你需要建立两个用户页

  1. 创建第一个页面(FIRST PAGE)
  2. 前往您的参数设置,勾选“原始签名”并在签名中放置{{FIRST PAGE}}。 保存
  3. 创建第二个页面(SECOND PAGE)(可能是第一个页面的子页面)
  4. 回到第一个页面(FIRST PAGE),并放置{{SECOND PAGE}}
  5. 去到第二页面(SECOND PAGE)和放置你所需要的代码成为你要的签名。

如果你还没有这个结构,你还需要插入你所有的签名代码进去原始代码当你的签名被用,因为软件会插入"SUBST"进你的设置。 你可能不会介意这点,就是在这种情况下你只需要一个页面。 如果你要原始代码只显示{{FIRST PAGE}}(这比较清洁),那你只需要使用两页的结构。

我如何在我的wiki安装副本中添加沙盒功能?

大多数情况下,沙盒是一个任何用户可以编辑的页面. 这只是个你可以自由决定的普通页面,MediaWiki并没有这种核心功能. 你也许注意到维基百科上的沙盒像是自动清空的,但这不完全对.

清空沙盒是由用户(或是机器人)定时完成的. 这其实不太正确,通常用户或机器人会定时把沙盒会回退到某个状态。

如何在个人工具栏(右上角)加入一个沙盒链接?

您需要添加小工具扩展,并添加沙盒小工具。 你也许希望对所有用户默认启用.

如何运行一个多语言wiki?

要让你的wiki提供工具进行翻译和自定义界面文字,可以使用翻译扩展,文档在这.

导入

从MediaWiki XML 转储中导入

参阅Manual:Importing XML dumps

从其他wiki软件迁移

注意:以下内容从旧有元维基常见问题复制而来。 这可能需要被改正。

随 MediaWiki 软件包提供的 UPGRADE 文件包含了一些信息。

下面提供了一种方法:

因为 MediaWiki 不使用 驼峰式大小写 格式化链接, 记得自己在链接上加方括号 [[ ]] 。 您可以这样做:

首先通过 importUseModWiki.php 获得 ImportStage1.txt 文件 (用 > 重定向输出到文件,起别的名字也可以)。

第二步,

sed '/Importing/!s/\ [A-Z]\w*[a-z]\w*[A-Z]\w*[a-zA-Z]/\ \[\[&\]\] /g'
    ImportStage1.txt > ImportStage2.txt

这应该会为驼峰式大小写的链接自动创建正确的链接。

在子页面上无法工作,如何修复?

然后,

sed 's/upload\:\w*\.\w*/http\:\/\/aberwiki\.org\/uploads\/& /g'
    ImportStage2.txt > ImportStage3.txt

这将修复你的上传连接。 改变你的替换文本使其符合你的

URL ,例如http://www.yourwiki.org/uploads/filename

你现在可以通过数据库操作导入 ImportStage3.txt 了,例如:

mysql -u<mysqluser> -p<yourpass> <db name> < ImportStage3.txt

注意: 如果你的 importUseModWiki.php 输出的是 XML 而不是 SQL ,可能是你的 MediaWiki 版本很新。 这种情况下你可以导入 XML ,参见 Importing a Wikipedia database dump into MediaWiki 中 'Import XML' 一节。 记得重新构建数据库,那里告诉了怎么做。

从其他类型文件中导入

有多种可以帮助将HTML或者其他标记语言转化成MediaWiki标记的工具.

开发者和系统管理员工具
终端用户工具
指南

MediaWiki自动导入脚本

来自 wiki_import - MediaWiki auto import script:

描述

這個腳本用來匯入整個裝有所需資料的資料夾,而資料夾的架構須符合維基的分類排序規定(hierarchy)。

功能

效益性:使用既有的知識庫製作維基條目卻沒有標明出處。 可維護性:以維基的等級分類樹原則編撰目錄的架構。 精確性:自動的匯入或是操作所有常用的資料格式。 完成性:涵蓋所有可應用的情形,即使需要為此分別撰寫每一個單獨的維基條目。 多功能性:使用者可以很自由的編輯自己想要的外觀與功能。

快速参考

wiki_import.sh $ $Revision: 1.1 $

MediaWiki 自動的資料匯入腳本:

用法 wiki_import.sh [OPTIONS]...

這個腳本用來匯入整個裝有所需資料的資料夾,而資料夾的架構須符合維基的分類排序規定(hierarchy)。

資料匯入的規格是以標準輸入為準。

选项

 -s, --sect=n     the root category section of the wiki of the imported article (mandatory)
 -1, --header     include standard header (category hierarchy path & notice)
 -l, --link       link to actual file on the web site
 -f, --footer     include standard footer (article category)
 -R, --res[=p]    add restricted tag in the footer as
                    '{{<Res Param|Root Category> Restricted}}' (default=`$_opt_sect')

配置设定

 -p, --php=fn     mediawiki import php script specification
 -r, --root=n     the root category name for the whole wiki site
 -m, --max=n      max_allowed_packet for mysqld to import
 -u, --user=n     wiki user used for the import
 -a, --arch=p     the root url that linked-to archive files based on

例如:

 echo ./path/to/file.ext | wiki_import.sh -1 -l -f -s 'Customer Support' -R 

至于细节的其余部分,请参见wiki_import

从其他网站(例如维基百科)导入的模板不工作

你需要安装一些在导出源wiki上使用的扩展,比如ParserFunctionsCite. 同时确定你复制了需要的CSSJavaScript.

进一步配置

如何让多个wiki使用一个凭据登录?

如果你正在分割一个wiki为多个,可以使用$wgSharedDB$wgSharedTables来让不同的wiki使用同一个用户数据库. 你也可以共享那些不依赖于未共享的表或是特定于某个子wiki的表, 参阅Manual:Shared database获得示例和更多信息.

  • If your wikis are already established and you want to switch to a single sign-on, you can use the CentralAuth extension. It has a few more features than a shared user table, but it's more difficult to configure and it's tailored toward a Wikimedia-style setup. However, it is easier than attempting to completely merge multiple user tables into one.

如何允许HTML标签?

参阅Manual:$wgRawHtml ,Manual:$wgGroupPermissionsManual:Preventing access.

小心! 小心: 此功能容易被破坏者滥用

也请参阅Extension:Secure HTMLExtension:HTMLets,这些方法可以让你更安全的插入HTML.

如何为MediaWiki增加新功能或是修复bug?

改进 (换句话说, 黑掉)MediaWiki的几个基本步骤是:

  • 安装Git
  • 从Git克隆MediaWiki源码.
  • 在你的电脑上运行web服务器,PHP和数据库服务器 (设置它们让你窝火? 遇到问题就求救呗~)
  • 在你的电脑上运行MediaWiki (同样让你窝火? 方法同上)
  • 修复问题或是增加你期望的新功能,没啥想法?从 "修复那些恼人的bug"开始呗.

如何运行一个机器人?

参阅Manual:Bots

或许可以试试Pywikibot框架.

如何设置 noindex nofollow

在LocalSettings.php中添加 $wgNoFollowLinksManual:$wgNoFollowLinks = false;.

如何设置一个小型wiki 农场?

请参阅: Manual:Wiki family

如何添加meta标签?

OutputPage类包含一个用来添加meta标签的addMeta方法. The RequestContext can be used to get the relevant OutputPage object.

To add further Meta tags just add further lines as last lines of the function addMetaTags() like:

$out->addMeta ( 'description', 'This is a meta description.' );

为什么...?

…帮助名字空间是空的?

现在帮助名字空间默认是空的. 是在你的wiki上还是MediaWiki.org上提供帮助由你决定. Obviously you can easily link your visitors to help resources elsewhere.

现在我们还没有一个清除明了,国际化而且自由的文档. 不过希望复制一些帮助信息到你的网站?没问题!Help:Contents 中的内容在基于MediaWiki搭建的网站上应该都可以使用,而且没有授权问题. 参阅Project:PD help,更多的帮助可以在元维基上的"MediaWiki Handbook"中找到.

…升级后某些图像无法显示?

有些用户报告说在升级后无法显示某些图片, 它们被服务器报告说"MIME类型无效"或"可能有害".

可以在终端运行maintenance/rebuildImages.php 来在数据库中设置新的MIME类型.

…png格式的图片没有缩略图?

有时升级了PHP版本以后MimeMagic.php函数的工作方式发生了变化,或者内置函数mime_content_type无法识别PNG格式, 试着在web上搜索mime_content_type png获得关于如何修复它们的信息.

参阅here 获得更多信息.

…搜索一个wiki内容中的关键字却没有结果?

By default, MediaWiki uses MyISAM's fulltext matching functionality to allow searching page content. The default settings for this mean that words of less than four characters won't be indexed, so will be ignored in searches with older versions of MediaWiki.

MediaWiki 1.13 and earlier are unable to work around this; you must either change MySQL/MariaDB's configuration to index shorter words, or upgrade to a more recent version of MediaWiki.

Note that some particular words may still not be indexed if they are in MySQL/MariaDB's default stopword list.

…不能下载MediaWiki 1.29 ?

MediaWiki 1.29 是在开发中的版本, 如果你想尝试的话,你可以从Git下载, 或者通过 mwSnapshots 下载最新的Tarball.

…某个在维基百科中的功能没法在我的wiki上工作?

维基百科(或是Wikimedia的其他网站)运行的是MediaWiki的开发版本(现在是1.30.0-wmf.5 (2802709)),这意味着某些功能可能与现在的稳定版并不一致. Coupled with the use of several extensions, this means that functionality between these wikis and your particular setup may differ.

…在Fedora上设置好权限后却得到了一个403错误?

Fedora Core 默认启用SELinux. 参阅这个页面获得关于设置SELinux的更多信息.

…自动注销了?

这个问题和Cookie或是会话有关,例如PHP中的 session.save_path [1]. 参阅登录问题?获得解决方案.

…我的wiki在Sourceforge上不工作?

参阅Manual:Installing MediaWiki on SourceForge.net.

…留着账户是个好主意?

At many times you just want to remove a user account out of the wiki either because it belonged to a spammer account or you just feel like it. The appropriate choice is to block the account or rename it if needed. 答案:

Do I just remove his row from the User table?

Rob Church posted the following regarding this issue on the wikitech-l mailing list:

"If the user has made edits, then removing rows from the user table cause theoretical loss of referential integrity. Now, to be honest with you, I can't think of any conditions where this would cause an actual problem; "undefined behaviour" is the phrase we use.

What I'd suggest doing, to be on the safe side, is running a couple of quick updates against the database:

UPDATE revision SET rev_user = 0 WHERE rev_user = <current_user_id>
UPDATE archive SET ar_user = 0 WHERE ar_user = <current_user_id>

What this will do is cause MediaWiki to treat the revisions as having been made anonymously when generating things like page histories, which should eliminate any problems caused by these routines attempting to check user details from other tables.

If the user has caused log entries, i.e. rows in the logging table, or uploaded images, then the situation becomes trickier, as you'll have to start mopping up all the rows everywhere and it could become a bit of a mess, so if the user's done anything other than edit, I would strongly recommend just blocking them indefinitely.

If the username is offensive or undesirable, then you could consider renaming it using the RenameUser extension."

另外一個選擇就是給予管理者 'hideuser' 的權限,然後無限期的禁止此使用者編輯權限,並從編輯者名單中移除。

Extension:UserMerge也有用。

反垃圾相关

到那里获得垃圾黑名单?

spam blacklist能够从Git中获取, 参阅README扩展的页面获得详细信息.

如何用$wgSpamRegex阻止多个字符串?

尽管$wgSpamRegex在过滤页面内容方面非常强大, 在正则表达式里添加多个项目可能把事情弄得很糟糕。 请考虑使用下面的方法:

$wgSpamRegexLines[] = 'display\s*:\s*none';
$wgSpamRegexLines[] = 'overflow\s*:\s*auto';
[...]
$wgSpamRegex = '/(' . implode( '|', $wgSpamRegexLines ) . ')/i';

这段代码范例很方便的在正则表达式里添加额外的字符串而无须每次都费时费力再做调整。 这段代码也展示其他两个很流行的屏蔽一些最常见的垃圾信息攻击的过滤器。

也请参阅: Extension:SpamRegex

有没有其他的方法对抗垃圾骚扰?

参阅Manual:Combating spam 来了解像Captcha一类的反垃圾骚扰的方法.

反破坏相关

参阅Manual:Combating vandalism 获得对抗破坏的一些提示

现在在哪?

到哪里提交bug报告和功能请求?

Phabricator提交Bug报告和功能请求. 参阅How to report a bug.

发生了一个奇怪的错误,我该怎么办?

我尝试过了,但是没用.

我遇到了一个问题,我发现FAQ有解决方案, 也照着FAQ做了,但是没用!!!

十有八九是你没清除缓存, 有一个非常简单的方法可以访问一个未缓存的页面.在你的地址栏上 選擇在位址欄之中有頁面標題(如 Main_Page)的 URL, 的后面随便输入个标题,按下Enter键,看看会不会遇到相同的问题. 檢查該頁面是否也有相同問題。

MediaWiki使用服务器端和客户端缓存,所以简单清除客户端缓存并不够. 參見此連結 relevant entry above 得知更多信息。

或许你该检查别的:

  • 你编辑的是正确的文件吗?试着在你编辑的文件里乱写一通,有什么坏掉了吗?
    • phpinfo.php(一个只包含 <?php phpinfo() ?> 的文件)是调试的好工具, 把它上传到你的服务器上, 打开它,查找php.ini中指定的文件位置.
  • 你有把设置放在正确的部分吗? 你有在php.ini中创建重复的目录吗? 记得把新的设置加到LocalSettings.php的最下面(而不是最上面!)
  • 如果你有创建 .htaccess, 请确定AllowOverrides打开了吗? 可以问问你的主机商.

有个没提到的问题,怎么办?

如果你已经仔细研究了上面的常见问题并且还是找不到答案的话,请尝试以下方法:

參見 section below 了解如何謝開法者以及其他有此方面知識的使用者。

运气不好,没有得到帮助咋办?

推荐阅读

参考