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,內容如下:
| 1 2 3 4 5 | <code class="hljs xml">NameVirtualHost?*:80 <span class="hljs-tag"><span class="hljs-tag"><<span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">VirtualHost<span class="hljs-tag">?*<span class="hljs-attr"><span class="hljs-tag"><span class="hljs-attr">:80<span class="hljs-tag">> ????DocumentRoot?"D:/Work/www/mediawiki-1.21.2/" ????ServerName?solee.org <span class="hljs-tag"><span class="hljs-tag"></<span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">virtualHost<span class="hljs-tag">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code> |
?
????因為是本機的緣故,我在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 | <code class="hljs markdown"><span class="hljs-section">#個人wiki,禁止創建帳號功能,除非登陸才能訪問 $wgGroupPermissions[<span class="hljs-string">'*'][<span class="hljs-symbol">'createaccount']?=?false; $wgGroupPermissions[<span class="hljs-string">'*'][<span class="hljs-symbol">'edit']?=?false; $wgGroupPermissions[<span class="hljs-string">'*'][<span class="hljs-symbol">'read']?=?false; <span class="hljs-section">#啟用詳細異常顯示. $wgShowExceptionDetails?=?true; <span class="hljs-section">#去除底部powered?by圖標 unset($wgFooterIcons['poweredby']); <span class="hljs-section">#對于沒有登錄的用戶,沒有登錄的用戶移除頁面頂部的討論頁鏈接 $wgShowIPinHeader?=?false; <span class="hljs-section">#默認在新標簽頁中打開鏈接 $wgExternalLinkTarget?=?'_blank';</span></span></span></span></span></span></span></span></span></span></span></code> |
?
????其他諸如圖標、主題、短鏈接等配置可以自行探索。
常用插件
????常用的插件,主要是富文本編輯器了,當個人傾向于使用純文本編輯器,也就是Mediawiki自己提供的編輯器。默認的工具條很丑,可以在頁面右上角的設置->編輯中開啟增強功能。
????富文本編輯器可選用WYSIWYG,搜索合適的版本下載之后,解壓到extensions目錄,并在LocalSettings.php中添加一行,加載此拓展:
富文本編輯器
| 1 | <code class="hljs lisp">require_once(?<span class="hljs-string">"$IP/extensions/WYSIWYG/WYSIWYG.php"?)<span class="hljs-comment">;</span></span></code> |
????這樣安裝好之后,可以在設置中選擇喜歡的編輯器,或者選擇在文本和富文本編輯器中自由切換。
代碼高亮
????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 | <code class="hljs php"><span class="hljs-comment">#pdf導出插件 <span class="hljs-keyword">require_once(<span class="hljs-string">"$IP/extensions/PdfExport/PdfExport.php"); <span class="hljs-comment">#使用Mpdf作為PdfExport的后端,但必須配置支持ckj字體 $wgPdfExportMPdf?=??$IP?.?<span class="hljs-string">'/extensions/Mpdf/mpdf.php';?<span class="hljs-comment">//?Path?to?the?main?mPDF.php?file</span></span></span></span></span></span></code> |
配置字體config_font.php(需要將字體添加到字體文件夾中)
修改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 | <code class="hljs less"><span class="hljs-selector-id">#Flash插件 <span class="hljs-selector-tag">require_once(<span class="hljs-string">"$IP/extensions/oflash/orificeflash.php"); #視頻插件 <span class="hljs-selector-tag">require_once(<span class="hljs-string">"$IP/extensions/MediawikiPlayer/MediawikiPlayer.php"); #批量導入插件 <span class="hljs-selector-tag">require_once(<span class="hljs-string">"$IP/extensions/MultiUpload/MultiUpload.php");</span></span></span></span></span></span></span></code> |
????當然具體的插件需要自己去下載。通常谷歌Mdiawiki ?<插件名稱>即可找到官方的下載地址。
備注:
| 1 2 | <code class="hljs less">#禁用掉此擴展,否則可能不能正常進入<span class="hljs-selector-tag">wiki <span class="hljs-selector-id">#require_once(?<span class="hljs-string">"$IP/extensions/LocalisationUpdate/LocalisationUpdate.php"?);</span></span></span></code> |
備份及優化
????備份主要涉及到數據庫的備份及Wiki的備份。對于這種非分布式、非云計算(哈哈——)的東西來說,備份就顯得尤為重要了。
| 1 | <code class="hljs css">????<span class="hljs-selector-tag">D:\<span class="hljs-selector-tag">Prog\<span class="hljs-selector-tag">wamp\<span class="hljs-selector-tag">bin\<span class="hljs-selector-tag">mysql\<span class="hljs-selector-tag">mysql5<span class="hljs-selector-class">.6<span class="hljs-selector-class">.12\<span class="hljs-selector-tag">bin\<span class="hljs-selector-tag">mysqldump?<span class="hljs-selector-tag">-u?<span class="hljs-selector-tag">root?<span class="hljs-selector-tag">-ppassword?<span class="hljs-selector-tag">solee_wiki_db?><span class="hljs-selector-tag">F:\<span class="hljs-selector-tag">wiki<span class="hljs-selector-class">.sql</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code> |
????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本文轉自茄子_2008博客園博客,原文鏈接:http://www.cnblogs.com/xd502djj/p/6195794.html,如需轉載請自行聯系原作者。
總結
- 上一篇: Matpotlib绘图遇到时间刻度就犯难
- 下一篇: java井字棋编程的收获_Java 井字