笔记 by 车东

TWiki DakarRelease安装备忘

上周和建硕聊天的时候,我提到了新年打算不再花太多时间写BLOG,blog毕竟只是一些碎片,而更有意义的是将这些碎片整理起来。我尝试了很多方法,发现还是使用wiki这种方式比较好。

Wiki的发布工具去年年底有2个比较重要的发布:都显示了各种wiki系统的成熟 MediaWiki(Wikipedia的后台): 1.5版本发布

TWiki 的后台平台是用:Perl写的,TWiki从2001年的发布版本开始:使用城市的名字作为版本命名,每次重大的版本相隔1年左右 2001年叫雅典(Athens), 2003年的北京(Beijing), 2004年的开罗(Cairo):也是目前用的最多的稳定发布版 2005年底发布Beta测试版的达喀尔(Dakar):已经是稳定版了。这个版本的优势在于: 1 国际化:重构的框架使得本地化的界面更加方便,我已经完整翻译了中文界面 2 更方便的安装:有了一个全局变量的configure界面是web方式管理的。但是实际上仍然比较麻烦,因为需要了解很多的apache的配置,如果对 .htaccess配置不熟悉,还是比较麻烦的; 3 子目录的支持等; 4 可视化的编辑器:WSYIWSG的编辑TWIKI 对于TWiki语法的高门槛来说,可视化编辑是非常重要的改进;

2月1日: TWiki如期发布了4.0

以下就是我的安装手记:

下载最新版本并解包: 注意,一定将 TWiki-4.0.0.tgz复制到某个目录下,比如:twiki后再解包 cp /home/apache/chedong.com/twiki ; cd /home/apache/chedong.com/twiki; tar zxf TWiki-4.0.0.tgz

网站的规划

说明以下TWiki应用的发布格式 http://www.EXAMPLE.COM/TWIKI_DIR/BIN/ACTION/WEB/TopicEntry EXAMPLE.COM: 主机名称 TWIKI_DIR:安装目录; BIN: twiki的程序目录; ACTION: 操作名称,wiki所有的输出都是通过脚本格式化以后,所以全部是动态发布,包括在线的编辑(edit) 修改(change) 查看(view)等,后台的存储结构是纯文本,不需要任何数据库的支持; WEB: twiki上的内容是可以分目录(web)管理的,缺省的有Main(用户) TWiki(系统配置和参考文档) Sandbox(测试),自己网站的内容最好不要和以上内容混放在一起,最好规划到另外的目录下:比如Tech Project等; TopinEntry: 条目,就是具体内容了,TWiki要求所有条目都使用WikiWord(有交替大小写出现,像骆驼的驼峰,所有也叫CamelWord)

将目录下的文件设置为apache的运行用户可写入,比如:服务器上使用apache帐号 sudo chown -R apache *

规划twiki程序和数据的安装目录 程序在服务器上的物理目录是: /home/apache/chedong.com/twiki 设计发布目录在: http://www.chedong.com/twiki/bin/view

以下是apache的一段config样例:

本地应用配置 创建/bin/LocalLib.cfg,在bin哪柯技下缺省有一个/bin/LocalLib.cfg.txt 设置其中的目录指向lib目录 $twikiLibPath = ‘/home/apache/chedong.com/twiki/lib’;

设置lib目录下的LocalSite.cfg 将lib目录下的LocalSite.cfg.txt命名成LocalSite.cfg, sudo mv LocalSite.cfg.txt LocalSite.cfg sudo chmod +w LocalSite.cfg 并修改:

将LocalSite.cfg文件设置为apache用户可以写入 chmod +w LocalSite.cfg 通过Web界面进入 http://www.example.com/twiki/bin/configure 界面: 按照以上设置后,完整的LocalSite.cfg还会加入:

这样一个基本的TWIKI就搭建完成了,其中可视化编辑器是通过{WysiwygPlugin}{Enabled}选项启用的。

TWiki的用户认证设置 缺省的TWIKI是没有认证的:如果要求全局的编辑/上传附件等操作要求有用户认证需要加入全局apache认证,缺省的认证是基于 .htpasswd的apache HTTP认证

可以先开放注册上几个用户:然后再将相应用户加入TWikiAdminGroup http://www.example.com/twiki/bin/view/TWiki/TWikiRegistration 注册后,会发现新用户的密码已经在 twiki/data目录下的 .htpasswd文件中生成了

设置网站级别认证 如果要设置编辑,创建等操作必须是认证后的注册用户: 在 bin目录下将缺省的.htaccess.txt命名成.htaccess文件 diff .htaccess .htaccess.txt 27c27 < AuthUserFile /home/apache/chedong.com/twiki/data/.htpasswd

AuthUserFile {DataDir}/.htpasswd 64c64 设置configure必须 < require user “CheDong”


           require user "{Administrators}"

这样:所有的edit/changes/,全局配置等等变更操作就都需要认证了。

之后所有网站/目录/页面级别的认证和设置都是在TWIKI界面中通过编辑TWiki条目完成了,这点和很多其他应用非常不同;

组/用户设置 先找到管理员组,将注释掉的设置加上管理员的名称,比如我设置了CheDong到TWikiAdminGroup组中

  • Set GROUP = CheDong
  • Set ALLOWTOPICCHANGE = TWikiAdminGroup

设置站点级别的配置: 修改TWiki/TWikiPreferences 包括网站名称和网站LOGO等,这个主题需要设置为只允许管理员(或管理员组)修改;

设置目录级别(Web Level)的配置和认证: 目录级别配置都在Webname/WebPreferences条目中:例如Sandbox/WebPreferences * Set DENYWEBVIEW = < comma-delimited list of Users and Groups > * Set ALLOWWEBVIEW = < comma-delimited list of Users and Groups > * Set DENYWEBCHANGE = < comma-delimited list of Users and Groups > * Set ALLOWWEBCHANGE = < comma-delimited list of Users and Groups > * Set DENYWEBRENAME = < comma-delimited list of Users and Groups > * Set ALLOWWEBRENAME = < comma-delimited list of Users and Groups >

例如:
* Set ALLOWWEBCHANGE = CheDong

设置页面级别(Topic Level)的认证: 可以在相应条目中设置直接加入设置: * Set DENYTOPICVIEW = < comma-delimited list of Users and Groups > * Set ALLOWTOPICVIEW = < comma-delimited list of Users and Groups > * Set DENYTOPICCHANGE = < comma-delimited list of Users and Groups > * Set ALLOWTOPICCHANGE = < comma-delimited list of Users and Groups > * Set DENYTOPICRENAME = < comma-delimited list of Users and Groups > * Set ALLOWTOPICRENAME = < comma-delimited list of Users and Groups > 例如:
* Set ALLOWTOPICCHANGE = TWikiAdminGroup

设置页面左栏: 编辑每个目录的WebLeftBar条目(没错:这个模板就是在每个条目中都被包含的左栏样式)

创建新的目录: TWiki缺省的几个目录都是有一定用途的:TWiki用于设置网站级别的属性,用户都在Main目录下,Sandbox目录用于测试等。所以建议将网站自身具体内容页面创建新目录实现。比如我将需要归档的内容放到Tech目录下,尽量避免和缺省的Main目录放在一起,也方面以后的文档管理。

我使用TWiki最大的感受: TWiki本身是一个非常好的“模板语言”,通过TWiki模板,结合一些扩展甚至可以开发出很多应用,如:记录会议既要,生成项目报表等;更多功能有待挖掘。以后类似的安装备忘,就要用twiki来书写了……

常用的一些模板: 加留言 %COMMENT%