Mediawiki常见问题解答
天下维客,你可以修改的网络知识库
基础概念
为什么要用MediaWiki呢?
MediaWiki是一个并非万能的wiki引擎程序,某些特定的内容/文档管理系统也许更适合你的需要。因此,建议您参考MediaWiki特征列表(英文)、wiki网站列表,以及 对Mediawiki的看法(英文)也可以了解一下
"Wikimedia"与"MediaWiki"是一回事吗?
不是. Wikimedia是一个非盈利组织zh:维基媒体基金会的名称,它管理着一系列wiki开源内容项目。MediaWiki则是为上述项目的需求而开发的软件。
更详细的解释请见名称(英文)。
我应该在哪里提交错误报告/特性请求?
错误报告请发布到 http://bugzilla.wikimedia.org。 请检索已有的列表,检查新版本中是否已经修正该问题,并确认问题没有重复提交。
本FAQ中没有的问题,该到哪里求助?
你可以访问中文wiki专题站点天下维客查找资料,并参与QQ群3680101的讨论。这是mediawiki在中国最大的使用、研究社群。
另外你可以到这里进行英文求助:
- 发邮件到mediawiki-l meta:mailing list
或者
- 参与our IRC channel的交谈
安装
参见:
基础概念
- 我应该如何设定一个Interwiki联结?
- 我应该如何启用上传文档?
- 我应该如何启用TeX (aka '数学支援')?
- 我应该如何使URL更美观?
- 我应该如何升级?
- 我应该如何改变用户名?
- 我应改如何要求用户登陆才可以编辑?
如何安装MediaWiki? 系统需求是什么?
一台服务器能同时装多个wiki(MediaWiki)吗?怎么做?
可以,在不同目录下安装MediaWiki即可。(如果共用同一个数据库,注意在安装时设定不同的数据表前缀)
如果希望让这些所有wiki进行公用某些设定,可以在所有的LocalSetting.php文件中加入
include_once("xxxDIRxxx/CommonSettings.php");
此后再CommonSettings.php中就可以加入公共设定内容。
如果希望在服务器上安装大量的wiki,并不一定需要为他们都保留一份单独的源代码。实际上,除了LocalSettings.php以外,其他文件都是相同的。因此,可以考虑用lndir命令(某些Linux环境下)或者类似工具来达到这个目的。
你可以让每个wiki享有单独的LocalSettings.php,也可以为维护起见而公用Localsettings.php并根据URL自动设定环境变量。参见Wiki farm。
如果希望登录过程对所有wiki通用,可以在LocalSettings.php中的“$wgSiteName = ...”后面增加:
ini_set("session.name", "{$wgSitename}Session" );
(注:本设置要求$wgSiteName变量中不能有空格,如有请自行修改)
我可以引入其他类型的wiki吗?
MediaWiki安装包中的UPGRADE文件中含有部分引入数据的文档说明。
根据这些资料,可以至少从单独的usemod中引入数据到MediaWiki:
由于MediaWiki不能自动链接到CamelCase形式的网址链接,你需要为所有链接增加双重重括号 ( [[ ]] )。下面是一个实现方法:
首先从importUseModWiki.php脚本(用>转义输入到文件)获取ImportStage1.txt (or你指定的其他名字),然后
sed '/Importing/!s/\ [A-Z]\w*[a-z]\w*[A-Z]\w*[a-zA-Z]/\ \[\[&\]\] /g' ImportStage1.txt > ImportStage2.txt
这将把CamelCase形式的链接修改为需要的形式。(注:对于子页SubPage链接好像存在小毛病)
接下来:
sed 's/upload\:\w*\.\w*/http\:\/\/aberwiki\.org\/uploads\/& /g' ImportStage2.txt > ImportStage3.txt
这将修改所有的上传路径。(上文中的aberwiki.org请修改为自己的网址)。现在可以用命令行将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')。不要忘记重建所有数据表,哪个页面中说明了如何进行操作。
可以为指定数据库前缀吗?
MediaWiki的1.3.x或更早版本不能这样做;对1.4.x及更晚的版本,安装过程中可以设定(建议前缀名以_结束)。
为什么Help:的名字空间为空?
目前还没有整洁、通用的国际化帮助文档。但你可以在MediaWiki User's Guide中找到有用的资料,这些是基于GNU FDL的开放文本。
我修改了$wgLanguageCode但什么也没发生,怎么回事?
在$wgUseDatabaseMessages的enable情况下显示用户界面时,首先要检查是否在MediaWiki: namespace (table CUR, field cur_namespace=8)下存在界面信息;如果存在则退出。如果$wgUseDatabaseMessages被关闭或没有上述页面存在,我们调用对应的语言文件Language??.php文件中的getMessage()函数。
换句话说,应首先尝试MediaWiki:名字库建,然后是本地文件。MediaWiki安装后,MediaWiki:名字空间将被Language??.php文件的初始化数据填充。当此后修改语言代码时,MediaWiki:页面并不随之更新,而是使用以往的数据。
设定$wgUseDatabaseMessages=false将得到你想要的结果(需要Ctrl-F5强制浏览器刷新),但此后无法使用MediaWiki名字空间。如果需要这种作,那应该运行maintenace目录下的rebuildMessages.php脚本。
参见MediaWiki i18n和MediaWiki namespace以获得更多信息。
安装过程没有任何提示地中止,或者得到一个空白页面
安装故障有时令人恼火且难以诊断。如果可能,检查PHP的错误日志(需要设置PHP以打开错误日志)并报告你见到的所有错误信息,以及安装脚本输出的 complete信息到mediawiki-l进行求助。
如果可以确认是特定的故障,请直接到 http://bugzilla.wikipedia.org/ 提交错误报告。
希望我的wiki出现在frame框架中,但他总是冲破框架
MediaWiki具有反frame保护以避免恶意引用。如果需要取消这个特性,编辑删除stylesheets/wikibits.js中下述内容:(注意:wikibits.js文件也可能不在stylesheets/wikibits.js,而出现为skins/common/wikibits.js)
// Un-trap us from framesets if( window.top != window ) window.top.location = window.location;
如何修改用户界面的各种提示?
用户界面文本放在MediaWiki名字空间下的特殊页面中。当以sysop身份登录时可以修改这些页面,并立刻见到输出的改变。
部分配置的修改(例如修改$wgSitename以设置站点名称)将不会改变安装过程生成的页面。你可以直接修改,或者使用maintenance目录下的rebuildMessages.php脚本(须用命令行方式执行,且必须建立AdminSettings.php文件)。参见。MediaWiki localisation。
为什么我的wiki在Sourceforge上不运行?
参见Running MediaWiki on Sourceforge.net。
如何在Windows上安装Imagemagick以获得缩略图片?
安装下述内容就行了:
- 安装xampp-win32-1.4.14
- 安装mediawiki
- ImageMagick-5.5.7-Q16-windows-dll.exe (看来无法配合新版MediaWiki使用。php_imagick.dll也许应该是CORE_RL_magick.dll而非CORE_RL_Magick++_.dll.)
- php.ini
extension=php_imagick.dll
- Localsettings.php
$wgEnableUploads = true; $wgUseImageResize = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = "convert"; #<-- this should point on the right path
使用 ImageMagick-6.2.5-Q16-windows-dll:
- 安装ImageMagick. 确定安装目录不包含有任何空白空间
- LocalSettings.php
$wgEnableUploads = true; $wgUseImageResize = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = "convert"; # <-- this should point on the right path
- 你不必将php_imagick.dll增加到php.ini
- 如果你运行于php安全模式,增加ImageMagick安装路径到php.ini,例如 safe_mode_exec_dir=C:/Programs/ImageMagick。
- 还需要修改%systemroot%/system32/cmd.exe的权限。请赋予IUSR_XXX以及IWAM_XXX以读取+执行权限。
- 具体怎么设置IUSR_XXX以及IWAM_XXX以读取+执行权限?谢谢!~
- 开放这个权限给IUSR和IWAM,不危险吗?
index转向到localhost或127.0.0.1或直接超时
解析完整URLs以及HTTP转向时,MediaWiki使用服务器提供的hostname。在Apache下这通常用ServerName参数设置,如果没被系统自动检测到的话。
如果这个设置是错的,可以尝试一下方法之一:
- 将Apache下的ServerName参数设为正确的hostname
- 用LocalSettings.php中的$wgServer变量直接指向URL协议和hostname (例如 'http://example.com')
如何激活“最近更新”中的RSS功能
我读了MediaWiki的RSS-Feed特性,但怎么激活它呢?
上传汉字名称的文件
MediaWiki上传文件时采用中文名称存在bug(1.5或更早版本),建议暂时不要使用中文名称。
使用
如何创建新页面?
参见如何创建新页面。
如何在正文中添加目录?
参见如何控制目录
comment1, http://www.clipclip.org/clips/detail/67760/buy-carisoprodol-online carisoprodol-online, %OOO, http://www.clipclip.org/goshaujebak/clips/tag/Hangover Hangover, goj, http://www.clipclip.org/clips/detail/67746/buy-tenuate-online usa tenuate, rkt,
comment4, http://www.23hq.com/lanoxin_12147/a/about buy lanoxin online, sgn, http://www.23hq.com/penis_growth_pills_12219/a/about penis growth pills, 558, http://www.23hq.com/breast_enhancement_gum_12031/a/about buy breast enhancement gum, 288738,
, http://www.imeem.com/people/tiBO5yb buy allegra online, 104282, http://www.imeem.com/people/54ga3gM order glucotrol+xl online, 3167, http://www.imeem.com/people/7RT8aSh purchase prednisone online, kkmcxi,
Big Headings
and so on... </pre>
我可以在自己的MediaWiki中调用commons.wikimedia.org的资料吗?
目前的公用图片库必须保存在服务器文件体系中,所以除非你的站点放在Wikimedia节点上,否则无法实现。
怎样运行自动程序机器人(bot)?
如何清除页面缓冲?
- 在普通页面的网址后面添加“&action=purge”参数可以更新服务器缓冲数据,这可能需要几分钟之后才能见到效果。
- 在LocalSettings.php中设置$wgCacheEpoch全局变量,强制现有缓冲过期(参见DefaultSettings.php)
- 也可以运行如下的脚本程序:
#! /bin/bash
# mwpurgecache - invalidate mediawiki cache
set -e
PROG=$(basename $0)
VER=0.1
function version() {
echo "$PROG $VER - invalidate mediawiki cache
Copyright (c) 2005 Claudio Jolowicz <claudio@jolowicz.com>
Copying and distribution of this file, with or without modification,
are per题'':我的维客站点显示的时间比北京时间晚8个小时,这是怎么回事?
''问题所属领域'':wiki
''回答者'':冷玉(61503688)
''答案'':你的时间是wediawiki默认的美国时间,只需在Localsettings.php文件中加一句话就行:。
加什么话阿?
''对解答的评价'':问题得到解决。
''备注'':无。
----
--[[User:Www.cn0km.com|Www.cn0km.com]] 08:48 2006年10月20日 (CST)
===如何只让登录用户编辑页面===
See [[Setting user rights in MediaWiki]] for questions relating to user rights.
For 1.5.1 or later:
To stop people from creating accounts and/or anonymously
editing pages, in the <code>LocalSettings.php</code>, add either of
these 2 lines:
// Only SysOp (Admin) can create accounts -
$wgGroupPermissions['*']['createaccount'] = false;
or
// No anonymous editing allowed -
$wgGroupPermissions['*']['edit'] = false;
//this one work in my pc --xp :-)
Pre 1.5.1:
Add this in <code>LocalSettings.php</code>:
$wgWhitelistEdit = true;
阿斯顿发
== I want to help develop MediaWiki further, where do I start? ==
see:[[How_to_become_a_MediaWiki_hacker]] ?
== How can I recover the SearchIndex Table? ==
When I try to repair it with phpmyadmin utilities it seems to be in use and nothing can be do with it.
Thanks for your attention and help
................
The SearchIndex table appears to break occassionally when any page in the wiki is edited and saved. Using the repair option in PhpMyAdmin seems to fix the table.
==Can I insert data/template data from another wiki in realtime into my wiki page as my wiki page displays?==
'''Bold text'''== 如何在页面上显示当前10条热点条目??? ==
请大侠帮忙告知,多谢了!
1. 下边两条分割线之间的部分是一个提问表,凡是在维客技术群里提问并得到解答的,请将下面的表(包括上下两条分隔线)复制后改造成自己的内容,<br>粘贴在前一个问题的后面,以方便天下维客收集整理和后来者的学习。<br>2. 微客在中国的发展,只有在每一个人积极的参与者,都能作出相应的贡献后才能加速,为使包括您在内的所有维客爱好者都能从中受益,请您配合:
----
''时间'':2006年10月18日
''提问者'':cn0km(453064423)
''问题'':我的维客站点显示的时间比北京时间晚8个小时,这是怎么回事?
''问题所属领域'':wiki
''回答者'':冷玉(61503688)
''答案'':你的时间是wediawiki默认的美国时间,只需在Localsettings.php文件中加一句话就行:。
''对解答的评价'':问题得到解决。
''备注'':无。
----
--[[User:Www.cn0km.com|Www.cn0km.com]] 08:48 2006年10月20日 (CST)
== 如何在页面上显示当前10条新贴???==
请大侠帮忙告知,多谢了!
== 如何上传zip文件到wiki网站啊?急死我了==
== 如何审核注册会员==

