欢迎来到我的用户页。用户页创建于2010年9月18日 (六) 10:17。讨论页
个人简介
注册于2008年10月13日,一直不太活跃。同期开始研究Mediawiki并建立自己的Wiki站点。
欢迎看一下我的个人网站:http://www.zayoo.org/ (简+繁,CC-BY-NC协议,留言评论关闭,如想评论可写在讨论页)
以及我创建的两个Wiki站点:
- 爱仙剑-仙剑百科 http://www.ipal.org.cn/ (简+繁,CC-BY-SA协议,可能暂停注册和编辑)
- WikiTHU,关于清华的百科 http://wikithu.cn/ (简+繁,CC-BY-SA协议,可能限制校外访问)
个人历史
- 注册:2008年10月13日
- 首次发言:2008年12月18日
- 首次编辑条目:2010年9月18日
- 创建用户页:2010年9月18日
- 成为自动确认用户:2010年10月3日
关于维基百科和Mediawiki
Mediawiki研究了很长一段时间了,技术基本上已经摸熟了,不过还有以下问题:(开发环境Win2003+IIS+PHP5+MySQL)
- 如何大批量上传文件?SpecialUploadLocal插件是个好东西,可惜对WM1.16完全不兼容。语言可以仿照ParserFunctions改成i18n格式,但那些1.16中用语文件上传的类(class)实在太复杂,研究一阵后不得不放弃。Commonist总是无法连接,最后不得不让1.15和1.16同时运行,共用一个数据库,1.15专门用来批量上传文件。
曾经用过ImageMagick,结果转换的图形只有黑色的轮廓。怎么也弄不好,只能放弃对svg的支持了。试图从svn下载维基百科所用的1.16wmf4版本,但很难跑起来,总是出错,只好用1.16(最近刚出了正式版)。最近把Rewrite(IIRF)用在Mediawiki上了,可以像维基百科一样用伪静态。问题是中文有时变乱码(即$_GET['title']含乱码),似乎是PHP的BUG,但ASP上从来不出乱码。把Non-Unicode默认为“英语(美国)”可以消除这一问题,但这样会干扰服务器上的其它中文程序。用复杂的Rewrite规则解决掉一部分乱码问题(但不是全部),希望能有彻底的解决方案。此问题未重现,可能是PHP的问题,新版PHP正常。
另外对维基百科的技术方面也存在一些疑问:
- 管理员是如何检测到破坏、建立新页面、用户注册等事件的?
- 维基百科与Mediawiki原版相比都做了哪些修改?
- 维基百科是增量存储(保存两个版本的差异)还是完整存储(每个版本独立保存)?
如果您愿意帮我解决这些疑问,请写在讨论页中,谢谢。
维基工具
维基知识
以下是本人在Windows+IIS+PHP+MySQL上搭建Mediawiki系统的一些总结。
环境配置(两台不同的服务器):Windows Server 2003 IIS 6.0 或 Windows Server 2008 R2 x64 IIS 7.5;PHP 5.2.14 x86;MySQL 5.1.50 x86;IIRF Rewrite 或 IIS7 Rewrite插件;Fast-Cgi插件(IIS7不需要);PHP WinCache插件。
PHP、MySQL问题
Windows Server 2008 R2自带Fast-Cgi,PHP安装采用Fast-Cgi,再安装iis.net提供的WinCache插件,可大大加快PHP运行速度。
Windows Server 2003需先从iis.net下载Fast-Cgi组件,安装之后再安装PHP(Fast-Cgi方式,若提示未找到Fast-Cgi插件则换用新版PHP),再安装iis.net提供的WinCache插件,可大大加快PHP运行速度。
PHP 5.3.3无法连接MySQL,换用PHP 5.2.14即可。
若MySQL卸载后重新安装,可能无法启动服务(设置root密码时会提示输入旧密码),只要在注册表中删除MySQL相关项(不要误删其它软件的MySQL连接组件)即可。
提示$_SERVER['REQUEST_URI']等内容未定义
在LocalSettings.php添加
if (!isset($_SERVER['REQUEST_URI'])) { if(!isset($_SERVER['SCRIPT_NAME'])) $_SERVER['SCRIPT_NAME']=''; $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME']; if(isset($_SERVER['QUERY_STRING'])) { $_SERVER['REQUEST_URI'] .= "?" . $_SERVER['QUERY_STRING']; } } if (!isset($_SERVER['REQUEST_METHOD'])) {$_SERVER['REQUEST_METHOD']='GET';}
常用参数
$wgEnableUploads = true; $wgNoFollowLinks=false; $wgGroupPermissions['*']['createaccount'] = false; #关闭注册 $wgGroupPermissions['user']['createaccount'] = false; #关闭普通用户邀请注册 $wgGroupPermissions['*']['edit'] = false; #关闭匿名用户编辑
常用插件
- ParserFunctions 用于{{#if:|}}等函数解析。
- CharInsert 用于编辑页面,点击插入字符。
- Mediawiki:Common.css 从维基百科复制,可使文字变大及使用其它CSS效果。部分图片需本地化。
- Mediawiki:Common.js 从维基百科复制,作用尚不明确。
多语言Rewrite
系统语言选择zh,然后可修改languages/messages/MessagesZh.php去掉不需要的语言(改成'disable')。
Rewrite多语言支持
$wgScriptPath = "/w"; $wgScriptExtension = ".php"; $wgArticlePath = "/zh/$1"; $wgVariantArticlePath = '/$2/$1'; #$wgUsePathInfo = true;
最后一行在一台远程服务器上导致打开任意网页均显示首页内容,因而去掉,原因尚不明确。对应的iirf.ini设置为
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/$ /w/index.php?title=%E9%A6%96%E9%A1%B5&variant=zh-cn [L,QSA] RewriteRule ^/zh[/]*$ /w/index.php?title=%E9%A6%96%E9%A1%B5&variant=zh-cn [L,QSA] RewriteRule ^/zh/(.*)$ /w/index.php?title=$1&variant=zh-cn [L,QSA] RewriteRule ^/zh-cn/(.*)$ /w/index.php?title=$1&variant=zh-cn [L,QSA] RewriteRule ^/zh-tw/(.*)$ /w/index.php?title=$1&variant=zh-tw [L,QSA]
改变网页标题与设置关键词
我将Advanced Meta修改使其具有修改网页标题的功能,见该插件的讨论页。
P1ayer说用{{DISPLAYTITLE:公司全称}}类似这样的写法。须先开启$wgAllowDisplayTitle = true;。菲菇说还需要mw:Manual:$wgRestrictDisplayTitle。未试验。刚才忘了加nowiki,结果网页标题和页面顶端标题都被改了,看来维基百科开启了这个功能。我修改后的Advanced Meta只修改网页标题,不修改页面顶端标题。
ImageMagick
终于把ImageMagick搞定了。以下操作是在Windows中进行的。
先下载安装ImageMagick,选择Win32或Win64的dynamic(dll)版本。安装路径选择“C:\ImageMagick”以消除版本带来的路径差别。
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "C:/ImageMagick/convert.exe";
$wgSVGConverterPath = "C:/ImageMagick";
$wgSVGConverters = array(
'ImageMagick' => '$path/convert -background transparent -thumbnail $widthx$height $input PNG:$output',
'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output',
'inkscape' => '$path/inkscape -z -w $width -f $input -e $output',
'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input',
'rsvg' => '$path/rsvg -w$width -h$height $input $output',
'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output',
);
如果只进行SVG转换,不创建普通图像的缩略图,可将前两行去掉。最后一段是因为默认的“$widthx$height\!”不正确,并把背景色改为透明。
最后一定要为c:\windows\system32\cmd.exe赋予至少Users的读取和执行权限,c:\windows\temp至少Users的完全控制权限。
警告:这将导致磁盘消耗剧增,甚至可能成为DDOS的目标!
未解决的问题
一些维基百科的模板移植到自己的wiki上不正常,而在Wikimedia的项目中均正常。菲菇说需要mw:Manual:$wgUseTidy。研究中。
表格套表格在1.15中正常,但1.16中不正常。试验一下
第一行 | |||||
第二行 |
|
这里是正常的,自己的wiki也正常。问题可能出现涉及表格填套的模板引用上。研究中。(莫非也和Tidy有关?)
闲聊杂谈
收集一些有意思的东东。有些事自己想的,也有些事网上转来转去转了N多遍的,就都当Public Domain了。
- 一女生状态:缺乏安全感。一男生回复:买个安全帽就有了。
- 马勒戈壁万丈高,卧草泥马也河蟹了。
- 祖国在沉睡,党在玩社会,社会在呻吟,人民在流泪!
- 机会成本并不是真正的成本,因为很多时候你根本就没有机会。
- 脑残的定义:Your brain has two parts: the left & the right. Your left brain has nothing right, and your right brain has nothing left.
- 林子大了什么鸟都有。
- 天才等于百分之九十九的灵感加上百分之一的汗水。
- 人生没有彩排的机会,每时每刻都是在现场直播,不仅工资低,收视率也不高。
- 谈恋爱可能耽误学习,也可能促进学习;打一种魔兽不仅耽误学习,也耽误谈恋爱。
- 谈钱伤感情,谈感情伤钱。
- 海阔凭鱼跃,破鼓任人捶。
- 西游记告诉我们,有背景的妖怪都会被领导救走,没背景的才被一棒打死!
- 车到山前必有路,船撞桥头自然沉。
- 低头要有勇气,抬头要有底气。
- 生活就像“呼吸”,“呼”是为了出一口气,“吸”是为了争一口气。
- 人有时是为了争一口气,有时是为了出一口气。
這是維基百科用户页 此頁面不是百科全書條目,也不是條目的讨论页。 若您在中文維基百科(域名為zh.wikipedia.org)之外的网站看到此頁面,那麼您可能正在瀏覽一个镜像网站。 请注意:镜像网站中的页面可能已经过时,且页面中涉及的用户可能與该镜像網站沒有任何关系。 若欲造訪原始页面,請點擊这里。 |