﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-simonw代码@痕记</title><link>http://www.cnblogs.com/simonw/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 22 Aug 2008 02:13:58 GMT</lastBuildDate><pubDate>Fri, 22 Aug 2008 02:13:58 GMT</pubDate><ttl>60</ttl><item><title>MoinMoin Wiki 1.7优化与维护经验</title><link>http://www.cnblogs.com/simonw/archive/2008/07/13/1241958.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Sun, 13 Jul 2008 12:35:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2008/07/13/1241958.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/1241958.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2008/07/13/1241958.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/1241958.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/1241958.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p><a href="http://www.cwowaddon.com/">CWoW Developer Group</a>(CWDG)从2006年开始在一直使用 <a href="http://moinmo.in/" target="_blank">MoinMoinWiki</a> 来构建一个魔兽世界游戏插件开发技术知识库, 这2年中wiki的版本也从1.5变更到了1.7. </p>
<p>moin1.6是一个变化最大的版本, 连不少wiki语法都改变了, 最显著的莫过于内连接的语法原先是["xxx"]现在与mediawiki一致了[[xxx]], 还有不少细节语法的改变, 这不知是一件好事还是坏事, 好事是和mediawiki大多语法兼容了方便内容移植, 坏事是googlecode的wiki还是在使用moin的老语法, 而且看起来来google并不打算向mediawiki类语法兼容而是继续保持下去这个风格. 但总之就是引起的1.5~1.6的升级困难, 除了常规步骤外需要做数据转换工作, 虽然moin提供了转换脚本. 时隔大半年我也忘记了当初是如何升级上来了, 惭愧, 只好在此介绍一些通用的优化与维护的经验. 适用环境: DreamHost, Linux.</p>
<p>&nbsp;</p>
<h2>站点结构的安排</h2>
<p>一个好的站点目录结构设置能够使升级, 备份, 移植都非常方便. 这里仅以单wiki站点为例(moin支持多wiki站点). 目标是把我们的数据与wiki程序分离开.</p>
<p>一个安装好wiki(如何安装参考我以前的文章)通常包含4个部分</p>
<ol>
    <li>wiki主程序部分
    <li>共享资源文件部分(共享的theme, img, css, js等文件)
    <li>wiki实例部分(我们的数据)
    <li>web访问部分(web目录, web访问的入口通常只包含一个入口moin.cgi文件)</li>
</ol>
<p>出于安全考虑, 把wiki实例部分放到了非web目录下, 这样除了1部分其余部分都会包含我们自己的数据, 需要做进一步整合. </p>
<table cellspacing="0" cellpadding="2" width="400" border="1">
    <tbody>
        <tr>
            <td valign="top" width="400">
            <p>#程序主目录<br />
            /lib/lib/python2.5/site-packages/MoinMoin
            <p>#共享资源目录<br />
            /lib/share/MoinMoin<br />
            &nbsp; /config<br />
            &nbsp; /data<br />
            &nbsp; /htdocs (主题目录)<br />
            &nbsp; /server<br />
            &nbsp; /underlay (在线帮助文件目录)
            <p>#wiki实例<br />
            /MoinMoin<br />
            &nbsp; /cwdgwiki (wiki实例目录)<br />
            &nbsp;&nbsp;&nbsp; /data<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /pages (wiki数据)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /plugin (自定义扩展插件目录)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /user (此wiki下的用户目录)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
            &nbsp;&nbsp;&nbsp; /underlay<br />
            &nbsp;&nbsp;&nbsp; wikiconfig.py (此wiki实例的配置文件)<br />
            &nbsp;&nbsp;&nbsp; logconfig (此wiki实例的log配置文件)
            <p>#web目录<br />
            /wiki.cwowaddon.com<br />
            &nbsp; /theme (主题目录)<br />
            &nbsp; /img (其他图片文件目录)<br />
            &nbsp; moin.fcgi (web入口程序)<br />
            &nbsp; .htaccess</p>
            </td>
        </tr>
    </tbody>
</table>
<p>需要调整的地方集中在共享资源目录中. </p>
<ol>
    <li>/htdocs提供了默认及自定义主题文件, 将/htdocs中的内容完全移动到web目录下的/theme中
    <li>/underlay 目录提供了固定的帮助文件, 将/underlay目录全移动到wiki实例的/data中
    <li>最后在wiki实例目录下的wikiconfig.py 中设置上面的2个路径信息<br />
    <table cellspacing="0" cellpadding="2" width="400" border="1">
        <tbody>
            <tr>
                <td valign="top" width="400">
                <pre><font face="Fixedsys"><font color="#000000">data_underlay_dir = </font><font color="#ff00ff">'/MoinMoin/cwdg</font></font><font face="Fixedsys"><font color="#ff00ff">wiki</font></font><font face="Fixedsys"><font color="#ff00ff">/underlay/'</font>
                <font color="#000000">url_prefix_static = </font><font color="#ff00ff">'/theme'</font></font></pre>
                </td>
            </tr>
        </tbody>
    </table>
    </li>
</ol>
<p>其余部分都是些模板文件, 不会被实际引用到, 因此可以把这个共享资源目录删掉了. 这下只留下了2部分我们自己的文件一部分是数据文件一部分是web需要的静态文件. 还有一点需要注意, 如果你对wiki写了一些自定义扩展如macro等, 一定要放在wiki实例目录下的plugin中. 日后升级只需要把wiki主程序删掉重新装一次就ok了.</p>
<p>&nbsp;</p>
<h2>性能优化</h2>
<p>性能永远是我们关注的主题, 在dreamhost的cgi模式下wiki的速度可以用龟速来形容, 尤其在升级到1.7后使用cgi每个页面需要50s的时间, 让人无法接受. 从3个方面来进行性能优化.</p>
<ol>
    <li>使用fastcgi<br />
    moin提供了好几种可提高性能的访问方式, 需要根据你的服务器情况来选择, fastcgi是最为常见的一种, 需要你在服务器上打开对fastcgi的支持. 在安装包的wiki/server目录下你可以找到moin.fcg这个文件(具体设置见我以前的文章), 需要注意的一点在dreamhost中, 以前.fcg是可用的, 但1.6以后就不能用了, 我一直没找到这个原因, 导致CWDG的wiki一直运行在龟速下, 直到1.7 反复调式才发现只需改名成<strong>moin.fcgi</strong>就没问题了.<br />
    <li>使用<a href="http://www.xapian.org/" target="_blank">xapian</a>全文检索组件<br />
    xapian是从1.6就引入的全文检索组件代替了以前的lupy, 使得检索性能能够大幅提升. 下面简单介绍下安装步骤:<br />
    <table cellspacing="0" cellpadding="2" width="600" border="1">
        <tbody>
            <tr>
                <td valign="top" width="600">
                <p>wget <a href="http://oligarchy.co.uk/xapian/1.0.6/xapian-core-1.0.6.tar.gz">http://oligarchy.co.uk/xapian/1.0.6/xapian-core-1.0.6.tar.gz</a><br />
                tar zxf xapian-core-1.0.6.tar.gz<br />
                cd xapian-core-1.0.6<br />
                ./configure --prefix=$HOME<br />
                make<br />
                make install
                <p>wget <a href="http://oligarchy.co.uk/xapian/1.0.6/xapian-bindings-1.0.6.tar.gz">http://oligarchy.co.uk/xapian/1.0.6/xapian-bindings-1.0.6.tar.gz</a><br />
                tar zxf xapian-bindings-1.0.6.tar.gz<br />
                cd xapian-bindings-1.0.6<br />
                ./configure --without-php --without-ruby --without-java --without-java-swig --without-csharp --without-tcl8 --with-python --prefix=$HOME XAPIAN_CONFIG=$HOME/bin/xapian-config<br />
                make<br />
                make install</p>
                <p>cd /lib/lib/python2.5/site-packages/MoinMoin/script/<br />
                python moin.py --config-dir=/MoinMoin/cwdgwiki --wiki-url=<a href="http://wiki.cwowaddon.com/">http://wiki.cwowaddon.com/</a> index build --mode=add</p>
                </td>
            </tr>
        </tbody>
    </table>
    <br />
    一个是安装xapian-core, 一个是安装xapain的python绑定程序, 最后是生成索引. 接下来在wikiconfig.py 中设置 <br />
    <br />
    <table cellspacing="0" cellpadding="2" width="400" border="1">
        <tbody>
            <tr>
                <td valign="top" width="400">
                <p>xapian_search = True<br />
                xapian_index_history = False<br />
                xapian_stemming = False</p>
                </td>
            </tr>
        </tbody>
    </table>
    <p>xapian_index_history 代表是否从历史版本中搜索, 一般情况下不需要.<br />
    xapian_stemming 是词根时态分词作用, 中文没有, 而且在中文下会有问题, 建议不要打开.<br />
    <br />
    上面2项做完后wiki性能提高近10倍.<br />
    &nbsp;</p>
    <li>定期清理垃圾文件<br />
    由于moin是基于文件系统存储的wiki, 所以经常在编辑的时候会产生些垃圾文件, 比如访问了一个未建的链接就会产生一个空目录, 放弃编辑一个词条则会产生一个edit-lock文件, 偶尔会因未知原因造成词条死锁导致任何人都无法再编辑. 这些文件的增多对性能有少许影响, 对备份管理也很不利. 因此我重写了一个清理脚本代替了以前功能不足的脚本.<br />
    请将<font face="Verdana">http://www.cnblogs.com/Files/simonw/cleanpage.zip</font>拷贝覆盖moin主程序/script/cleanpage.py 执行下面的脚本即可<br />
    <table cellspacing="0" cellpadding="2" width="600" border="1">
        <tbody>
            <tr>
                <td valign="top" width="600">
                <p>cd /lib/lib/python2.5/site-packages/MoinMoin/script/<br />
                python moin.py --config-dir=/MoinMoin/cwdgwiki&nbsp; --wiki-url=<a href="http://wiki.cwowaddon.com/">http://wiki.cwowaddon.com/</a> maint cleanpage</p>
                </td>
            </tr>
        </tbody>
    </table>
    </li>
</ol>
<img src ="http://www.cnblogs.com/simonw/aggbug/1241958.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41832/" target="_blank">[新闻]2008年8月22日IT博客精选</a>]]></description></item><item><title>WoW安全模板技术文档翻译 - SecureStateHeader</title><link>http://www.cnblogs.com/simonw/archive/2007/07/06/808492.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Fri, 06 Jul 2007 06:31:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2007/07/06/808492.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/808492.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2007/07/06/808492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/808492.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/808492.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2007/07/06/808492.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/808492.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41831/" target="_blank">[新闻]微软封杀盗版网站</a>]]></description></item><item><title>雕虫小技之MoinMoin Wiki与Discuz论坛的单点登陆整合</title><link>http://www.cnblogs.com/simonw/archive/2007/03/23/685323.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Fri, 23 Mar 2007 06:11:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2007/03/23/685323.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/685323.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2007/03/23/685323.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/685323.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/685323.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2007/03/23/685323.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/685323.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41830/" target="_blank">[新闻]财富：十大最炫酷的手机应用软件</a>]]></description></item><item><title>雕虫小技之为Discuz论坛添加Wiki语法</title><link>http://www.cnblogs.com/simonw/archive/2007/03/19/679284.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Sun, 18 Mar 2007 16:26:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2007/03/19/679284.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/679284.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2007/03/19/679284.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/679284.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/679284.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2007/03/19/679284.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/679284.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41829/" target="_blank">[新闻]商业周刊:暴雪Activision合并 巨无霸诞生</a>]]></description></item><item><title>MoinMoin Wiki 在Linux Apache下的安装</title><link>http://www.cnblogs.com/simonw/archive/2007/03/10/670489.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Sat, 10 Mar 2007 11:45:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2007/03/10/670489.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/670489.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2007/03/10/670489.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/670489.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/670489.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2007/03/10/670489.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/670489.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41828/" target="_blank">[新闻]51.com新版上线 正式推出开放平台</a>]]></description></item><item><title>Metatable In Lua 浅尝辄止</title><link>http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Tue, 16 Jan 2007 16:44:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/622032.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/622032.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/622032.html</trackback:ping><description><![CDATA[摘要: Metatable并不神秘, 他只是一个普通的table. 本文简单介绍了Metatable的概念及几个应用, 起一个抛砖引玉的作用.&nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/622032.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41827/" target="_blank">[新闻]微软照片共享网站Photosynth上线首日陷入瘫痪 访问量过大</a>]]></description></item><item><title>Lua中实现类似C#的事件机制</title><link>http://www.cnblogs.com/simonw/archive/2006/12/20/597986.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Wed, 20 Dec 2006 05:42:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2006/12/20/597986.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/597986.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2006/12/20/597986.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/597986.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/597986.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2006/12/20/597986.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/597986.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41826/" target="_blank">[新闻]修改版WinXP集体歇业避免遭遇调查</a>]]></description></item><item><title>MoinMoin Wiki 权限使用指南</title><link>http://www.cnblogs.com/simonw/archive/2006/12/09/586923.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Fri, 08 Dec 2006 17:41:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2006/12/09/586923.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/586923.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2006/12/09/586923.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/586923.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/586923.html</trackback:ping><description><![CDATA[摘要: 本文以实践经验剖析了如何使用MoinMoinWiki系统的权限部分, 明晰了很多说明文档中未提及的概念, 是做为官方说明文档的有力补充.&nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2006/12/09/586923.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/586923.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41825/" target="_blank">[新闻]微软投诉番茄花园幕后：两月前BSA代为出手</a>]]></description></item><item><title>MoinMoin Wiki 引擎概览</title><link>http://www.cnblogs.com/simonw/archive/2006/11/27/574253.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Mon, 27 Nov 2006 10:58:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2006/11/27/574253.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/574253.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2006/11/27/574253.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/574253.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/574253.html</trackback:ping><description><![CDATA[摘要: MoinMoin是一个由Python编写的Wiki引擎, 本文对其特性做了一个整体介绍, 也希望大家能更多的关注Wiki在国内的发展.&nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2006/11/27/574253.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/574253.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41822/" target="_blank">[新闻]第一财经周刊:当前互联网世界正处无秩序时代</a>]]></description></item><item><title>Wiki服务商简介</title><link>http://www.cnblogs.com/simonw/archive/2006/10/18/532389.html</link><dc:creator>simonw</dc:creator><author>simonw</author><pubDate>Wed, 18 Oct 2006 04:58:00 GMT</pubDate><guid>http://www.cnblogs.com/simonw/archive/2006/10/18/532389.html</guid><wfw:comment>http://www.cnblogs.com/simonw/comments/532389.html</wfw:comment><comments>http://www.cnblogs.com/simonw/archive/2006/10/18/532389.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/simonw/comments/commentRss/532389.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/simonw/services/trackbacks/532389.html</trackback:ping><description><![CDATA[摘要: Wiki的写作方式正在逐渐被大家所接受, 早些时候人们想使用Wiki的时候一般都是会找台主机, 安装一个Wiki引擎程序, 配置好后使用. 这样对于大多数人一是技术有门槛, 二是找主机也是问题. 现在出现了一些专门提供Wiki服务的服务商, 你只需要注册一个帐号就可以拥有自己的wiki了, 然后邀请朋友来共同写作.&nbsp;&nbsp;<a href='http://www.cnblogs.com/simonw/archive/2006/10/18/532389.html'>阅读全文</a><img src ="http://www.cnblogs.com/simonw/aggbug/532389.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41820/" target="_blank">[新闻]Visual Studio 2008 SDK 1.1 发布</a>]]></description></item></channel></rss>