MoinMoin Wiki 1.7优化与维护经验
?
CWoW Developer Group(CWDG)從2006年開始在一直使用 MoinMoinWiki 來構建一個魔獸世界游戲插件開發技術知識庫, 這2年中wiki的版本也從1.5變更到了1.7.
moin1.6是一個變化最大的版本, 連不少wiki語法都改變了, 最顯著的莫過于內連接的語法原先是["xxx"]現在與mediawiki一致了[[xxx]], 還有不少細節語法的改變, 這不知是一件好事還是壞事, 好事是和mediawiki大多語法兼容了方便內容移植, 壞事是googlecode的wiki還是在使用moin的老語法, 而且看起來來google并不打算向mediawiki類語法兼容而是繼續保持下去這個風格. 但總之就是引起的1.5~1.6的升級困難, 除了常規步驟外需要做數據轉換工作, 雖然moin提供了轉換腳本. 時隔大半年我也忘記了當初是如何升級上來了, 慚愧, 只好在此介紹一些通用的優化與維護的經驗. 適用環境: DreamHost, Linux.
?
站點結構的安排
一個好的站點目錄結構設置能夠使升級, 備份, 移植都非常方便. 這里僅以單wiki站點為例(moin支持多wiki站點). 目標是把我們的數據與wiki程序分離開.
一個安裝好wiki(如何安裝參考我以前的文章)通常包含4個部分
出于安全考慮, 把wiki實例部分放到了非web目錄下, 這樣除了1部分其余部分都會包含我們自己的數據, 需要做進一步整合.
| #程序主目錄 #共享資源目錄 #wiki實例 #web目錄 |
需要調整的地方集中在共享資源目錄中.
其余部分都是些模板文件, 不會被實際引用到, 因此可以把這個共享資源目錄刪掉了. 這下只留下了2部分我們自己的文件一部分是數據文件一部分是web需要的靜態文件. 還有一點需要注意, 如果你對wiki寫了一些自定義擴展如macro等, 一定要放在wiki實例目錄下的plugin中. 日后升級只需要把wiki主程序刪掉重新裝一次就ok了.
?
性能優化
性能永遠是我們關注的主題, 在dreamhost的cgi模式下wiki的速度可以用龜速來形容, 尤其在升級到1.7后使用cgi每個頁面需要50s的時間, 讓人無法接受. 從3個方面來進行性能優化.
moin提供了好幾種可提高性能的訪問方式, 需要根據你的服務器情況來選擇, fastcgi是最為常見的一種, 需要你在服務器上打開對fastcgi的支持. 在安裝包的wiki/server目錄下你可以找到moin.fcg這個文件(具體設置見我以前的文章), 需要注意的一點在dreamhost中, 以前.fcg是可用的, 但1.6以后就不能用了, 我一直沒找到這個原因, 導致CWDG的wiki一直運行在龜速下, 直到1.7 反復調式才發現只需改名成moin.fcgi就沒問題了.
xapian是從1.6就引入的全文檢索組件代替了以前的lupy, 使得檢索性能能夠大幅提升. 下面簡單介紹下安裝步驟:
| wget http://oligarchy.co.uk/xapian/1.0.6/xapian-core-1.0.6.tar.gz wget http://oligarchy.co.uk/xapian/1.0.6/xapian-bindings-1.0.6.tar.gz cd /lib/lib/python2.5/site-packages/MoinMoin/script/ |
一個是安裝xapian-core, 一個是安裝xapain的python綁定程序, 最后是生成索引. 接下來在wikiconfig.py 中設置
| xapian_search = True |
xapian_index_history 代表是否從歷史版本中搜索, 一般情況下不需要.
xapian_stemming 是詞根時態分詞作用, 中文沒有, 而且在中文下會有問題, 建議不要打開.
上面2項做完后wiki性能提高近10倍.
?
由于moin是基于文件系統存儲的wiki, 所以經常在編輯的時候會產生些垃圾文件, 比如訪問了一個未建的鏈接就會產生一個空目錄, 放棄編輯一個詞條則會產生一個edit-lock文件, 偶爾會因未知原因造成詞條死鎖導致任何人都無法再編輯. 這些文件的增多對性能有少許影響, 對備份管理也很不利. 因此我重寫了一個清理腳本代替了以前功能不足的腳本.
請將http://files.cnblogs.com/simonw/cleanpage.zip拷貝覆蓋moin主程序/script/cleanpage.py 執行下面的腳本即可
| cd /lib/lib/python2.5/site-packages/MoinMoin/script/ |
轉載于:https://www.cnblogs.com/simonw/archive/2008/07/13/1241958.html
總結
以上是生活随笔為你收集整理的MoinMoin Wiki 1.7优化与维护经验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [团队开发]总结下Server 2008
- 下一篇: 为搜索引擎做准备