Mediawiki


摘要: 本文講述如何使用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,內容如下:

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配置很豐富,下面介紹幾種可能感興趣的配置:

#個人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中添加一行,加載此拓展:

富文本編輯器

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

#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');

其他插件:

#Flash插件 require_once("$IP/extensions/oflash/orificeflash.php"); #視頻插件 require_once("$IP/extensions/MediawikiPlayer/MediawikiPlayer.php"); #批量導入插件 require_once("$IP/extensions/MultiUpload/MultiUpload.php");

    當然具體的插件需要自己去下載。通常谷歌Mdiawiki  <插件名稱>即可找到官方的下載地址。

備注:

#禁用掉此擴展,否則可能不能正常進入wiki #require_once( "$IP/extensions/LocalisationUpdate/LocalisationUpdate.php" );

備份及優化

    備份主要涉及到數據庫的備份及Wiki的備份。對於這種非分布式、非雲計算(哈哈——)的東西來說,備份就顯得尤為重要了。

    D:\Prog\wamp\bin\mysql\mysql5.6.12\bin\mysqldump -u root -ppassword solee_wiki_db >F:\wiki.sql

    wiki備份直接把wiki的文件夾打個包即可。如果是采取sqlite數據庫的話,數據庫備份更加簡單了。

    在windows上一個比較煩人的問題就是,wamp的mysql內存占用甚是大,在我4G內存的機器上吃了500M,這不能忍啊,因此需要優化一下mysql:

[mysqld] port=3306 max_connections = 100 #加入以下內容 performance_schema_max_table_instances=600 table_definition_cache=400 table_open_cache=256

最后來張效果圖吧:

 https://my.oschina.net/std/blog/190639
mediawiki 還可以參考
http://www.cnblogs.com/ToDoToTry/p/4475067.html
http://blog.csdn.net/wangnan537/article/details/37743497
https://my.oschina.net/tanyixiu/blog/109350


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM