歡迎來到我的用戶頁。用戶頁創建於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)之外的網站看到此頁面,那麼您可能正在瀏覽一個鏡像網站。 請注意:鏡像網站中的頁面可能已經過時,且頁面中涉及的用戶可能與該鏡像網站沒有任何關係。 若欲造訪原始頁面,請點擊這裡。 |