平常開發中總會有許多東西須要記錄,不少軟件均可以作到這一點,例若有道雲筆記,或者寫博客。但我的偏心於Mediawiki,由於wiki可定製性強,總給人一種高端大氣的感受。起初對wiki這種東西一無所知,受老總的影響,開始在公司推廣wiki,惋惜到如今沒有推廣成功,不過本身卻是喜歡上這東西了。廢話少扯,進入正題吧。
php
首先大體說說wiki是什麼吧。在我看來,wiki就是一種學術性的博客,可是更加嚴謹,至關於字典,也不徹底像字典同樣拘束與單詞,總之,我也說不清楚,形象的說,就是一個文檔系統吧。當前有不少wiki軟件,例如Wikipedia使用的Mediawiki,以及MoinMoin,還有其餘的不少版本;而Mediawiki應該是最廣爲人知的吧。
html
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,內容以下:
python
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安裝就這樣簡單。mysql
wiki配置很豐富,下面介紹幾種可能感興趣的配置:
sql
#我的wiki,禁止建立賬號功能,除非登錄才能訪問 $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['read'] = false; #啓用詳細異常顯示. $wgShowExceptionDetails = true; #去除底部powered by圖標 unset($wgFooterIcons['poweredby']); #對於沒有登陸的用戶,沒有登陸的用戶移除頁面頂部的討論頁連接 $wgShowIPinHeader = false; #默認在新標籤頁中打開連接 $wgExternalLinkTarget = '_blank';
其餘諸如圖標、主題、短連接等配置能夠自行探索。
數據庫
經常使用的插件,主要是富文本編輯器了,當我的傾向於使用純文本編輯器,也就是Mediawiki本身提供的編輯器。默認的工具條很醜,能夠在頁面右上角的設置->編輯中開啓加強功能。
windows
富文本編輯器可選用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
最後來張效果圖吧: