如何使用Mediawiki搭建個人wiki系統、以及wiki的部分基本操作和設定
日常開發中總會有許多東西需要記錄,很多軟體都可以做到這一點,例如有道雲筆記,或者寫部落格。但個人偏愛於Mediawiki,因為wiki可定製性強,總給人一種高階大氣的感覺。起初對wiki這種東西一無所知,受老總的影響,開始在公司推廣wiki,可惜到現在沒有推廣成功,不過自己倒是喜歡上這東西了。廢話少扯,進入正題吧。
首先大致說說wiki是什麼吧。在我看來,wiki就是一種學術性的部落格,但是更加嚴謹,相當於字典,也不完全像字典一樣拘束與單詞,總之,我也說不清楚,形象的說,就是一個文件系統吧。當前有很多wiki軟體,例如Wikipedia使用的Mediawiki,以及MoinMoin,還有其他的很多版本;而Mediawiki應該是最廣為人知的吧。
Wiki安裝
Mediawiki基於php,可以選擇MySQL、Sqlite等諸多資料庫,在windows上首選wamp server來配置神一般的Php+MySQL環境。本文使用的是Mediawiki1.21.2,Wamp2.4 ,windows8 pro x64的環境。可以建一個專門放網站的目錄,例如d:/work/www,將wiki解壓到該目錄下即可。在wamp安裝目錄下的alias目錄下,新建一個配置檔案,例如wiki.conf,內容如下:
1 2 3 4 5 |
NameVirtualHost * : 80
<VirtualHost * : 80 >
DocumentRoot "D:/Work/www/mediawiki-1.21.2/"
ServerName solee.org
< / virtualHost>
|
因為是本機的緣故,我在host中將solee.org解析到127.0.0.1,窮人買不起虛擬主機。這樣訪問localhost,將會進入Mediawiki的初始化安裝介面。該安裝程式實際上是引導你生成LocalSettings.php,當然也可以手工設定。建議先自己選擇,這樣會生成一個LocalSettings.php檔案,並執行相應的資料庫初始化,將此php下載後放到wiki的根目錄下面,直接再訪問localhost即可進入wiki。好了,wiki安裝就這樣簡單。
基本配置
wiki配置很豐富,下面介紹幾種可能感興趣的配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#個人wiki,禁止建立帳號功能,除非登陸才能訪問
$wgGroupPermissions [ '*' ][ 'createaccount' ] = false;
$wgGroupPermissions [ '*' ][ 'edit' ] = false;
$wgGroupPermissions [ '*' ][ 'read' ] = false;
#啟用詳細異常顯示.
$wgShowExceptionDetails = true;
#去除底部powered by圖示
unset( $wgFooterIcons [ 'poweredby' ]);
#對於沒有登入的使用者,沒有登入的使用者移除頁面頂部的討論頁連結
$wgShowIPinHeader = false;
#預設在新標籤頁中開啟連結
$wgExternalLinkTarget = '_blank' ;
|
其他諸如圖示、主題、短連結等配置可以自行探索。
常用外掛
常用的外掛,主要是富文字編輯器了,當個人傾向於使用純文字編輯器,也就是Mediawiki自己提供的編輯器。預設的工具條很醜,可以在頁面右上角的設定->編輯中開啟增強功能。
富文字編輯器可選用WYSIWYG,搜尋合適的版本下載之後,解壓到extensions目錄,並在LocalSettings.php中新增一行,載入此拓展:
富文字編輯器
1 |
require_once ( "$IP/extensions/WYSIWYG/WYSIWYG.php" );
|
這樣安裝好之後,可以在設定中選擇喜歡的編輯器,或者選擇在文字和富文字編輯器中自由切換。
程式碼高亮
1.21.2的程式碼高亮外掛已經預設集成了,如果沒有整合,可以搜尋Mediawiki Geshi安裝此外掛。
pdf匯出
Mediawiki的 pdf匯出應該說算是比較頭疼的問題了,其實支援pdf匯出的外掛不少,但是對中文的支援非常不好,目前可以用PdfExport外掛比較完美的實現。官方的PdfExport外掛已經過時(目前不知道是否更新了),需要進行部分修改:
Mediawiki1.21.2匯出,可以使用PdfExport外掛+Mpdf進行。當前HtmlDoc等其他後端均不能支援中文。 Mpdf需要配置支援CJK字元
配置LocalSettings.php
1 2 3 4 |
#pdf匯出外掛
require_once ( "$IP/extensions/PdfExport/PdfExport.php" );
#使用Mpdf作為PdfExport的後端,但必須配置支援ckj字型
$wgPdfExportMPdf = $IP . '/extensions/Mpdf/mpdf.php' ; // Path to the main mPDF.php file
|
配置字型config_font.php(需要將字型新增到字型資料夾中)
"sun-exta" => array( 'R' => "Sun-ExtA.ttf", 'sip-ext' => 'sun-extb', ), "sun-extb" => array( 'R' => "Sun-ExtB.ttf", ),
修改config_cp.php
CASE "zh": $unifonts = "sun-exta,sun-extb"; break;
修改MPdfConverter.php
$mpdf = new mPDF('zh'); $mpdf->SetAutoFont(AUTOFONT_ALL); $mpdf->WriteHTML($html);
修改config.php
$this->useAdobeCJK = true;
另外,需要註釋掉下面的函式呼叫:
//wfLoadExtensionMessages('PdfPrint');
其他外掛:
1 2 3 4 5 6 |
#Flash外掛
require_once ( "$IP/extensions/oflash/orificeflash.php" );
#視訊外掛
require_once ( "$IP/extensions/MediawikiPlayer/MediawikiPlayer.php" );
#批量匯入外掛
require_once ( "$IP/extensions/MultiUpload/MultiUpload.php" );
|
當然具體的外掛需要自己去下載。通常谷歌Mdiawiki <外掛名稱>即可找到官方的下載地址。
備註:
1 2 |
#禁用掉此擴充套件,否則可能不能正常進入wiki
|