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样例:

ScriptAlias /twiki/bin/ "/home/apache/chedong.com/twiki/bin/"
Alias /twiki/ "/home/apache/chedong.com/twiki/"
<Directory "/home/apache/chedong.com/twiki/bin">
Options +ExecCGI
SetHandler cgi-script
Allow from all
</Directory>
<Directory "/home/apache/chedong.com/twiki/pub">
Options FollowSymLinks +Includes
AllowOverride None
Allow from all
</Directory>
<Directory "/home/apache/chedong.com/twiki/data">
deny from all
</Directory>
<Directory "/home/apache/chedong.com/twiki/templates">
deny from all
</Directory>

本地应用配置
创建/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
并修改:

diff LocalSite.cfg /home/chedong/downloads/twiki/lib/LocalSite.cfg.txt
26c26
< $cfg{DefaultUrlHost} = 'http://www.chedong.com';
---
> $cfg{DefaultUrlHost} = 'http://your.domain.com';
36c36
< $cfg{PubDir} = '/home/apache/chedong.com/twiki/pub';
---
> $cfg{PubDir} = '/home/httpd/twiki/pub';
44c44
< $cfg{TemplateDir} = '/home/apache/chedong.com/twiki/templates';
---
> $cfg{TemplateDir} = '/home/httpd/twiki/templates';
49c49
< $cfg{DataDir} = '/home/apache/chedong.com/twiki/data';
---
> $cfg{DataDir} = '/home/httpd/twiki/data';
55,68d54

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

$cfg{LogDir} = $cfg{DataDir};
$TWiki::cfg{Languages}{fr}{Enabled} = 0;
$TWiki::cfg{LoginManager} = 'TWiki::Client::TemplateLogin';
$TWiki::cfg{Languages}{es}{Enabled} = 0;
$TWiki::cfg{Password} = 'EOoq/24gtkWtw';
$TWiki::cfg{Languages}{pt}{Enabled} = 0;
$TWiki::cfg{Site}{Lang} = 'zh';
$TWiki::cfg{DisplayTimeValues} = 'servertime';
$TWiki::cfg{LocalesDir} = '/home/apache/chedong.com/twiki/locale';
$TWiki::cfg{Languages}{da}{Enabled} = 0;
$TWiki::cfg{Languages}{de}{Enabled} = 0;
$TWiki::cfg{Languages}{nl}{Enabled} = 0;
$TWiki::cfg{Site}{FullLang} = 'zh-cn';
$TWiki::cfg{UserInterfaceInternationalisation} = 1;
$TWiki::cfg{Site}{CharSet} = 'UTF-8';
$TWiki::cfg{Site}{Locale} = 'zh_CN.UTF-8';
$TWiki::cfg{Plugins}{WysiwygPlugin}{Enabled} = 1;

这样一个基本的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%

作者:车东 发表于:2006-01-15 21:01 最后更新于:2007-08-16 12:08
版权声明:可以转载,转载时请务必以超链接形式标明文章 的原始出处和作者信息及本版权声明

引用通告

以下是前来引用的链接: TWiki DakarRelease安装备忘:

Comments

很好,收藏。

越来越觉得Trac会大行其道.

Twiki觉得没有dokuwiki应用好啊 。
http://xoops.pp.ru
你测试下,dokuwiki很多插件的配合下,管理更方便。

管理任务

在下面您可以找到DokuWiki中可用的管理任务的列表。

* Access Control List Management...
* User Manager
* darcs repository
* Manage Plugins...
* Configuration Settings ...
* Admin Skeleton...

How about:

ScriptAlias /twiki/bin/ "/home/apache/chedong.com/twiki/bin/"
Alias /twiki/pub/ "/home/apache/chedong.com/twiki/pub/"

it should be more secure.

受教了,现在正是寒假,刚好有充足的时间来实验一下。

“blog毕竟只是一些碎片,而更有意义的是将这些碎片整理起来。”

写了一段时间的Blog,感觉Blog这种方式对知识的管理的确有不足的地方,不过没有想到用Wiki的方式。

车东老大总是想人民之所想 好好
我以前也是想了很久了

目前的做法是 我改了一篇blog
然后在标题下面注明更新 如:
(本文最近于2006-01-16 11:41更新)

经常每天都会改一下的

这下好了 又可以直接站在chedong肩膀上了 哈哈
师弟在我测试机上架了个Wiki完
得花功夫整合改进一下

学习~

blog 的特点就是让一些流水帐冲淡一些经典文章,并且还让经典文章找不到。
国内blogger老大在鼓励别人blog时,自己却想离开。
较好的结构是分两栏。
最近更新|经典文章
http://www.useit.com/

车东,Yupoo网站最新升级,诚邀您试用,最新支持:
(1) BlogThis功能,同时blog中发表的内容能自动trackback回您上传的照片
(2) 标注Note,照片上面添加标注信息
(3) 发布Tag 2.0 的版本.把专题改版为人人可参与的Tag Group, 变成一个个tag2.0
(4) Tag Suggest: 用户输入的tag 系统给予了建议
(5) 相册的排序功能 
(6) 照片举报功能 
(7) 增加了邀请朋友的方式,方便进行邀请
(8) 升级了站内消息,支持消息群发
(9) 发布新的照片压缩算法,照片保持基本不失真

PS:一直找不到你的联系IM,能否加我?
阿华 yupoohelp@gmail.com (GT或MSN均可)

那倒底是哪一套好用呢?

下载最新Beta版本并解包:目前的发布版为TWikiRelease2005x12x17x7873beta.tgz
注意,一定将 TWikiRelease2005x12x17x7873beta.tgz复制到twiki哪柯技下后再解包
cp /home/apache/chedong.com/twiki ; cd /home/apache/chedong.com/twiki; tar zxf TWikiRelease2005x12x17x7873beta.tgz

======================

谢谢车东提醒。在内网上实验了一下升级。工作得很好(本来的版本是用dakar alpha,preview中会出现乱码)。从dakar alpha升级到1227这个beta版只要执行
$./UpgradeTwiki ../twiki/bin/setlib.cfg ../newtwiki/
检查一下log,没有问题就用newtwiki覆盖twiki就可以了。
不过zh.po不工作。。。因为换了blueskin这个看起来fancy一点的皮肤。皮肤也要汉化。待我回家把这个皮肤汉化过来再说。

推荐oddmuse / oddmuse.org
一样不需要数据库
perl脚本
很多插件

请教高手,在windows安装的,到底怎么能把中文设出来,

TWIKI的确优于Blog很多...
最近在windows xp sp2单机上装了一个作为自己的knowlege/writting base,

1. 安装过程比较顺利,新的guide比较详细的
2. 中文支持只要改一下 charset就可以了
3. 写了一个for maxthon的插件这样就可以用gvim直接编辑内容了,

谁知道中国有哪些public的twiki站点站点?
希望能多交流MSN: liwei79@gmailSTOPSPAM.com

选个好的wiki不容易啊。
试试1.5.5的那个wiki吧。以前试验安装过 pmwiki
也看过 dotnet的wiki
perl的东西一直都不十分喜欢,可能来自于对perl的偏见吧。

怎么设置charset,都不能汉化,郁闷……

能请教一下mail服务如何配置吗?
我不管用哪种方式都无法收到邮件
能否详细说一下?
谢谢

启用Linux下面的 sendmail 就OK了。
另:
中文可以选出来,但是始终不能变成缺省的,烦了好几天了为这。

{UserInterfaceInternationalisation} √
{Languages}{'zh-cn'}{Enabled} √
{DisplayTimeValues} servertime
{UseLocale} √
{Site}{Locale} zh_CN.UTF-8
{Site}{LocaleRegexes} √
{Site}{CharSet} UTF-8
{Site}{Lang} zh
{Site}{FullLang} zh-cn
{PluralToSingular} √

twiki 4.04 目前按你的安装方法不成功,更新一下吧,害人的手册。

如何在windows下安装Twiki


安装流程主要分三个步骤:
Perl & Apache安装
TWiki 安装
GUNWIN32 grep 安装

(假设安装在C盘下)

http://twiki.org/cgi-bin/view/Codev/IndigoPerlCookbook从这里可以下载IndigoPerl (里面包含有perl和apache),同时也可以在此下载到GnuWin32 grep。

步骤1:安装Perl & Apache

Perl:
1. 在C盘下默认安装Perl(版本必须是5.8或者之上);
2. 把“C:\perl\bin;”添加到System Variables中的 "Path";
3. 在MS-DOS中敲入perl –v命令来确定Perl是否成功安,成功则显示Perl的版本信息;
4. 安装Algorithm::Diff;
5. 安装CGI::session;
6. 安装Error。

[提示] 如果安装正确的话应该可以在...Perl\site\lib目录下看到以上的安装包要安装perl模块可以用ppm或者ipm (位于perl/bin目录下),然后即可用( install 模块名)这种方式来安装所需要的perl模块了.但要注意可能你输入 install CGI::session 它会提示找不到,原因是现在这个模块已经被改名.所以比较好的方法是先搜索一下,然后根据搜索到的模块来进行安装,至于搜索的命令( search ),你看看ppm或者ipm的帮助就可以了.
Apache:
1. 在C:盘下默认安装Apache;
2. 为了避免与IIS冲突,Apache的端口要另外设置;这里需要修改一下apache的配置文件( conf目录下的httpd.conf文件)然后用文本编辑器打开,找到 Listen 80 把这个端口号改成你自己想要的就行了(比如12345);
3. 如果本机上没有安装PHP的话需要在Apache的配置文件中注释掉 php_adminflag engine off 语句;
4. 为了避免与系统原来的Apache服务器冲突,新安装的Apache需更名;为了正确的安装,我们需要进入apache2\bin目录下,然后在命令行下输入“ apache help“即可查看它的参数,
然后我们输入“apache –n apache1 –k install“,按回车即可.如果没有提示出错就表明已经安装成功,这时我们可以打开“控制面板“->“管理工具“->“服务“即可查看到我们刚刚安装的apache1这个服务了.把它启动即可.
5. 确保Appache可以运行perl程序,具体的Appache的安装和配置请参考相关的Appache文档.这里主要提到要注意的几点.首先要确保它能运行perl文件(AppServ\www\cgi-bin\printenv.pl),如果它能被正常的运行,那就说明可以了.如果不行,则要查看printenv.pl这个文件的第一行,一定要确保它指向了perl.exe程序(#!c:\perl\bin\perl.exe).经过这个改动之后,就应该可以在浏览器中输入http://localhost/cgi-bin/printenv.pl就可以看到效果了.其实它运行perl文件是需要perl.exe来执行的.所以我们解决的问题就是如何确保最简单的perl文件能被执行.

步骤2:安装Twiki

1.在C盘下新建“twiki”文件夹;
2.在twiki文件夹中下载最新的twiki安装包;
3.在twiki文件夹中解压twiki安装包;
4.把twiki目录下的bin和data, pub目录下的所有文件设置成可写(默认为只读);
5.打开C:\ apache\conf\httpd.conf;
6.在文件最后加上include "C:\twiki\twiki.conf";
7.打开C:\twiki\twiki_httpd_conf;
8.把C:\twiki\twiki_httpd_conf里面所有的/home/httpd/twiki替换成C:\twiki;
9.文件C:\twiki\twiki_httpd_conf保存为C:\twiki\twiki.conf;
10.把C:\twiki\bin目录下所有用Perl执行的文件前面所指定的路径改为C:\Perl\bin\perl.exe;
11. 把bin目录下的LocalLib.cfg.txt 这个文件改成LocalLib.cfg,然后用文本编辑器打开,修改$twikiLibPath这个参数,把它设置成lib库的绝对路径(比如$twikiLibPath = "C:/AppServ/apache2/TWiki/lib");然后把lib目录下的LocalSite.cfg.txt这个文件改名为LocalSite.cfg 同时打开文件进行修改.需要修改以下部分

$TWiki::cfg{DefaultUrlHost} = 'http://localhost:12345';
$TWiki::cfg{PubDir} = 'C:/AppServ/apache2/twiki/pub';
$TWiki::cfg{TemplateDir} = 'C:/AppServ/apache2/twiki/templates';
$TWiki::cfg{DataDir} = ' C:/AppServ/apache2/twiki/data';

12.normalizeFileName函数问题,normalizeFileName函数把所有路径名前面加上 / 以便程序能在Linux上运行,但在Windows上面继续用这个函数的话将会发生错误。所以我们需要对这个函数进行修改。函数所在文件路径:D:\twiki\lib\TWiki\Sandbox.pm,修改如下:

sub normalizeFileName {
my ($string) = @_;
return '' unless $string;
my $absolute = File::Spec->file_name_is_absolute($string);
my @result;
for my $component (File::Spec->splitdir($string)) {
next unless $component;
next if $component eq '.';
if ($component eq '..') {
throw Error::Simple( 'relative path in filename '.$string );
} elsif ($component !~ /$TWiki::cfg{NameFilter}/) {
# We need to untaint the string explicitly.
# FIXME: This might be a Perl bug.
push @result, untaintUnchecked( $component );
} else {
throw Error::Simple( 'illegal characters in file name component '.
$component.' of filename '.$string );
}
}
return $string;
# Convert to UNIX path and return
#if (@result) {
# if ($absolute) {
# $result[0] = "/$result[0]";
# } elsif ($result[0] =~ /^-/) {
# $result[0] = "./$result[0]";
# }
# return join '/', @result;
#} else {
# return '/' if $absolute;
# throw Error::Simple( 'empty filename '.$string );
#}
}

13.如果配置顺利,这时候你将可以通浏览器浏览http://localhost/twiki/bin/configure ;
[提示] 如果访问这里的时候提示说没有权限,那你就要看看C:\twiki\twiki.conf这个文件里面的这个地方,我们注意到这里有Allow from localhost 原因就出在这里了,你可以试试把后面的localhost 改为127.0.0.0 或者你的 IP地址 即可.所有对apache服务器的配置文件的修改都必须重启服务器,经过这样配置以后,你应该可以访问http://localhost/twiki/bin/configure ;
14.在configure页面点击 Store Settings , 在 {StoreImpl} 下拉列表中选择 RcsLite ,点击 Next 保存设置.

15.如果顺利的话你现在可以浏览:http://localhost/twiki/bin/view/Sandbox/DoIWork 。


步骤3:安装 GnuWin32 grep
1. 下载GnuWin32 grep;
2. 按默认路径( c:\Program Files\GnuWin32 )安装GnuWin32 grep;
3. 把c:\progra~1\GnuWin32\bin;添加到System Variables中的 "Path";
4. 在MS-DOS中敲入grep –V ,确认grep是否安装成功;
5. 打开http://localhost/twiki/bin/configure 进行配置;
6. 打开 Store Settings;
7. 设置 {EgrepCmd} 为 c:\progra~1\GnuWin32\bin\grep.exe %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%
8. 设置 {FgrepCmd} 为 c:\progra~1\GnuWin32\bin\grep.exe %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%
9. 如果能过浏览 http://localhost/twiki/bin/view/TWiki/SiteChanges则证明安装成功;

[附录]
在你实际的安装过程中,可能还会遇到一些其它的情况,但你通常可以从以下两个方面来考虑以帮助你更快的找到问题.

第一 确保apache服务器可以启动,如果启动不了,则可以查看一下”控制面板”->”管理工 具”->”事件查看器”然后看看是什么原因引起的错误,通常都是由于配置文件的不正确 修改引起的(比如拼写错误).当然你也可以看看apache2\logs的error.log.这些log都是可 以帮助你更快的找到问题所在的.

第二 如果访问twiki的时候出现错误,则可以借助\TWiki\data里面的warn.*来查看出错的原因,然后再解决.

第三 以下提供一些网上的一些资料
http://twiki.org/cgi-bin/view/Codev/IndigoPerlCookbook


您好:
请问如何创建类似sandbox的目录?

请问 注册用户里总是提示邮件发不出去,注册用户里收不到邮件,不知道在在哪里配置,怎么配置。谢谢

发表一个评论

(如果你此前从未在此 Blog 上发表过评论,则你的评论必须在 Blog 主人验证后才能显示,请你耐心等候。)

相关文章

关于

此页面包含了发表于2006年01月15日 晚上09时38分的 Blog 上的单篇日记。

此 Blog 的前一篇日记是 Wiki发布系统的选型

此 Blog 的后一篇日记是 分布式应用日志的集中化存储

更多信息可在 主索引 页和 归档 页看到。

Creative Commons License
此 Blog 中的日记遵循以下授权 Creative Commons(创作共用)授权.
Powered by
Movable Type 3.36