大虾★★★★★的回答:安装流程 -------------------------------------------------------------------------------- 下载TWiki . TWiki的官方网站是twiki.org,其下载页面是:Download the Package,目前的版本是2004年9月分release的。下载其安装包:TWiki20040902.tar.gz 配置setlib.cfg . 解开压缩包后,在twiki/bin目录下,你会发现setlib.cfg文件,里面唯一需要修改的是:$twikiLibPath ,把他改成twiki/lib的绝对路径。如:$twikiLibPath=/home/winter/twiki/lib 。 配置TWiki.cfg .这是最重要的配置,主要包括: $defaultUrlHost. 缺省的主机url路径。用url的形式赋值,如:$scriptUrlPath=" http://www.stlchina.org"; $scriptUrlPath . 脚本所在的url路径。相对于$defaultUrlHost的,因此只要写后一部分就行了。如$scriptUrlPath = "/twiki/bin"; $dispScriptUrlPath . 脚本的实际显示路径。默认都会是: $dispScriptUrlPath = $scriptUrlPath; $dispViewPath . 用于显示网页脚本的url路径,相对于$dispScriptUrlPath, 缺省是$dispViewPath = "/view" 不用修改。 $pubUrlPath . 用来保存附件的url路径。默认是$pubUrlPath = "/twiki/pub"; $pubDir 用来保存附件的绝对路径。 注意,这个路径需要是twiki/pub所在本机的绝对路径。如$pubDir = "/home/winter/twiki/pub" .如果使用的是虚拟主机,这个路径就很麻烦了。参看关于虚拟主机 $templateDir 用来保存模板的绝对路径。同上,需要本机的绝对路径。如:$templateDir ="/home/winter/twiki/templates"; $dataDir .保存数据的目录。需要绝对路径。如:$dataDir = "/home/wende/twiki/data"; 选择你的存储模式 . TWiki使用的是文本数据库,TWiki会保存所有的变化。了解unix和linux的朋友都知道diff命令,还有类似的ci co rcs等命令。TWiki就是使用这些命令来实现其不同的版本管理。如果你能控制你的网站服务器,例如,你有root权限。你可以设置$ storeTopicImpl = "RcsWrap"; 但是,如果你是虚拟主机用户,你还是选择$storeTopicImpl = "RcsLite";后者会100%使用perl来完成所有的文档存储和版本管理功能。如果你选择后者,你最好把所有在twiki/bin目录下的文件增加一个后缀名,然后在你的TWiki.cfg文件中设置:$scriptSuffix = ".pl"; 测试你的配置 . 使用bin目录下的testenv脚本来测试你的环境。如果你发现有红色的warning,那就是还有一些问题。不过不要紧,一切都可以解决。如果是路径问题,你可以查查实际的路径是否确实存在。如果你是使用虚拟主机用户,那么只要你选择了RcsLite方式,这些路径问题的warning,你基本可以忽略。 2 设置用户访问权限. -------------------------------------------------------------------------------- Wiki本来是讲究自由、协作和信任。因此在安装后,任何人都有权限访问、修改所有的文章。但是在网络上,为了安全起见,还是希望有用户认证。可以按照以下步骤实施: 把twiki/bin目录下的.htaccess.txt改名为.htaccess .了解apache配置的人肯定知道这是干什么:) 设置 AuthUserFile /home/winter/twiki/data/.htpasswd AuthName 'twiki' AuthType Basic 其中AuthUserFile 是twiki/data/.htpasswd的绝对路径。 出错页面设置: ErrorDocument 401 http://www.stlchina.org/twiki/bin/oops.pl/TWiki/TWikiRegistration?template=oopsauth 这时需要把注册页面换成带输入密码的注册页面: 在twiki/data/TWiki/下有TWikiRegistration.txt和TWikiRegistrationPub.txt, 用后者把前者覆盖(cp TWikiRegistrationPub.txt TWikiRegistration.txt) 你现在测试每个页面的'Edit',你会发现需要输入用户名和密码。如果你按照这个方式改了,发现还不行的话,那就是服务器的设置有一些问题。我在安装的时候就遇到了这样的问题(51.net的G型服务,开始少装了几个安全认证的包) 3 TWiki中文显示设置 -------------------------------------------------------------------------------- Wiki默认是不支持中文的,其编码为:en_US.ISO-8858-1 ,如果你用Edit编辑了某个页面,在其中输入了中文,然后提交,显示一切正常。但是你再次点'Edit'的时候,你会发现中文部分变成了乱码 #98A3 #E2F3 等。要让TWiki显示中文,操作如下: TWiki.cfg 文件中,设置: $useLocale =1 (默认是 0) $siteLocale = "cn_CN.GB2312"; 这样Twiki就会支持GB2312。 重新打开一个页面,看看页面源码,应该在meta里面有:content="text/html; charset=gb2312" 4 在虚拟主机(Web hosting)上安装TWiki的注意事项 -------------------------------------------------------------------------------- 对于虚拟主机用户来说,安装TWiki确实是很麻烦的事情。一般只有ftp权限,所有的操作都需要本地修改,然后上传,经过测试,再修改,再上传。对于ftp链接,本来就不是很稳定,使其操作就更加麻烦。 对于虚拟主机用户来说,需要解决以下问题: 得到public所在主机的绝对路径。我是用的是虎翼网的G 型服务,按照他们网站和业务员的解释说,我的ftp的public目录就是在机器的/home/username/public目录。经过我测试,并非如此,而是这样:/home/user/ap1/username/public_html .当然不同的用户路径模式有可能不一样。但是如果你是使用的虚拟主机,你需要得到绝对路径。我当时是使用PHP测试得到的。 选择$storeTopicImpl = "RcsLite"来存储文章和进行版本管理。因为虚拟主机用户一般都很难知道ci co diff等命令的实际路径,如果选择RcsWrap方式,可能会在网页存储的时候遇到到一个明显的错误: During save of file TestTopic1? an error was found by the version control system. Please notify your TWiki administrator. /usr/bin/ci -q -l -m'none' -t-none -w'guest' /home/n/a/naturemagic/public_html/data/Test/TestTopic1.txt 2>&1 1>/dev/null /usr/bin/ci: permission denied Go back in your browser and save your changes locally. 选择$scriptSuffix = ".pl";默认是$scriptSuffix = ""; 这样可以避免一些在目录设置上的问题,所有都依赖于perl。另外需要把twiki/bin目录下所有的脚本文件都改名成.pl的后缀。如testenv 改为testenv.pl 在twiki/bin目录下的.htaccess文件中,也需要把相应的改成pl后缀.如: <Files "viewauth"> require valid-user </Files> 改成: <Files "viewauth.pl"> require valid-user </Files> 5 其他参考 顺利的安装会有同样的顺利,而失败的安装却各有各的原因。如果你仍然有问题,选择下列途径: 首先选择参考TWiki安装向导, 对于中文TWiki的安装,当然要参考如何安装TWiki(中文TWiki的安装). 对于英文比较好的朋友,可以直接到TWiki.org官方网站上去。 还有CheDong的TWiki的安装备忘, 竹笋炒肉的TWIKI手记 大虾★★★★★的回答:安装流程 -------------------------------------------------------------------------------- 下载TWiki . TWiki的官方网站是twiki.org,其下载页面是:Download the Package,目前的版本是2004年9月分release的。下载其安装包:TWiki20040902.tar.gz 配置setlib.cfg . 解开压缩包后,在twiki/bin目录下,你会发现setlib.cfg文件,里面唯一需要修改的是:$twikiLibPath ,把他改成twiki/lib的绝对路径。如:$twikiLibPath=/home/winter/twiki/lib 。 配置TWiki.cfg .这是最重要的配置,主要包括: $defaultUrlHost. 缺省的主机url路径。用url的形式赋值,如:$scriptUrlPath=" http://www.stlchina.org"; $scriptUrlPath . 脚本所在的url路径。相对于$defaultUrlHost的,因此只要写后一部分就行了。如$scriptUrlPath = "/twiki/bin"; $dispScriptUrlPath . 脚本的实际显示路径。默认都会是: $dispScriptUrlPath = $scriptUrlPath; $dispViewPath . 用于显示网页脚本的url路径,相对于$dispScriptUrlPath, 缺省是$dispViewPath = "/view" 不用修改。 $pubUrlPath . 用来保存附件的url路径。默认是$pubUrlPath = "/twiki/pub"; $pubDir 用来保存附件的绝对路径。 注意,这个路径需要是twiki/pub所在本机的绝对路径。如$pubDir = "/home/winter/twiki/pub" .如果使用的是虚拟主机,这个路径就很麻烦了。参看关于虚拟主机 $templateDir 用来保存模板的绝对路径。同上,需要本机的绝对路径。如:$templateDir ="/home/winter/twiki/templates"; $dataDir .保存数据的目录。需要绝对路径。如:$dataDir = "/home/wende/twiki/data"; 选择你的存储模式 . TWiki使用的是文本数据库,TWiki会保存所有的变化。了解unix和linux的朋友都知道diff命令,还有类似的ci co rcs等命令。TWiki就是使用这些命令来实现其不同的版本管理。如果你能控制你的网站服务器,例如,你有root权限。你可以设置$ storeTopicImpl = "RcsWrap"; 但是,如果你是虚拟主机用户,你还是选择$storeTopicImpl = "RcsLite";后者会100%使用perl来完成所有的文档存储和版本管理功能。如果你选择后者,你最好把所有在twiki/bin目录下的文件增加一个后缀名,然后在你的TWiki.cfg文件中设置:$scriptSuffix = ".pl"; 测试你的配置 . 使用bin目录下的testenv脚本来测试你的环境。如果你发现有红色的warning,那就是还有一些问题。不过不要紧,一切都可以解决。如果是路径问题,你可以查查实际的路径是否确实存在。如果你是使用虚拟主机用户,那么只要你选择了RcsLite方式,这些路径问题的warning,你基本可以忽略。 2 设置用户访问权限. -------------------------------------------------------------------------------- Wiki本来是讲究自由、协作和信任。因此在安装后,任何人都有权限访问、修改所有的文章。但是在网络上,为了安全起见,还是希望有用户认证。可以按照以下步骤实施: 把twiki/bin目录下的.htaccess.txt改名为.htaccess .了解apache配置的人肯定知道这是干什么:) 设置 AuthUserFile /home/winter/twiki/data/.htpasswd AuthName 'twiki' AuthType Basic 其中AuthUserFile 是twiki/data/.htpasswd的绝对路径。 出错页面设置: ErrorDocument 401 http://www.stlchina.org/twiki/bin/oops.pl/TWiki/TWikiRegistration?template=oopsauth 这时需要把注册页面换成带输入密码的注册页面: 在twiki/data/TWiki/下有TWikiRegistration.txt和TWikiRegistrationPub.txt, 用后者把前者覆盖(cp TWikiRegistrationPub.txt TWikiRegistration.txt) 你现在测试每个页面的'Edit',你会发现需要输入用户名和密码。如果你按照这个方式改了,发现还不行的话,那就是服务器的设置有一些问题。我在安装的时候就遇到了这样的问题(51.net的G型服务,开始少装了几个安全认证的包) 3 TWiki中文显示设置 -------------------------------------------------------------------------------- Wiki默认是不支持中文的,其编码为:en_US.ISO-8858-1 ,如果你用Edit编辑了某个页面,在其中输入了中文,然后提交,显示一切正常。但是你再次点'Edit'的时候,你会发现中文部分变成了乱码 #98A3 #E2F3 等。要让TWiki显示中文,操作如下: TWiki.cfg 文件中,设置: $useLocale =1 (默认是 0) $siteLocale = "cn_CN.GB2312"; 这样Twiki就会支持GB2312。 重新打开一个页面,看看页面源码,应该在meta里面有:content="text/html; charset=gb2312" 4 在虚拟主机(Web hosting)上安装TWiki的注意事项 -------------------------------------------------------------------------------- 对于虚拟主机用户来说,安装TWiki确实是很麻烦的事情。一般只有ftp权限,所有的操作都需要本地修改,然后上传,经过测试,再修改,再上传。对于ftp链接,本来就不是很稳定,使其操作就更加麻烦。 对于虚拟主机用户来说,需要解决以下问题: 得到public所在主机的绝对路径。我是用的是虎翼网的G 型服务,按照他们网站和业务员的解释说,我的ftp的public目录就是在机器的/home/username/public目录。经过我测试,并非如此,而是这样:/home/user/ap1/username/public_html .当然不同的用户路径模式有可能不一样。但是如果你是使用的虚拟主机,你需要得到绝对路径。我当时是使用PHP测试得到的。 选择$storeTopicImpl = "RcsLite"来存储文章和进行版本管理。因为虚拟主机用户一般都很难知道ci co diff等命令的实际路径,如果选择RcsWrap方式,可能会在网页存储的时候遇到到一个明显的错误: During save of file TestTopic1? an error was found by the version control system. Please notify your TWiki administrator. /usr/bin/ci -q -l -m'none' -t-none -w'guest' /home/n/a/naturemagic/public_html/data/Test/TestTopic1.txt 2>&1 1>/dev/null /usr/bin/ci: permission denied Go back in your browser and save your changes locally. 选择$scriptSuffix = ".pl";默认是$scriptSuffix = ""; 这样可以避免一些在目录设置上的问题,所有都依赖于perl。另外需要把twiki/bin目录下所有的脚本文件都改名成.pl的后缀。如testenv 改为testenv.pl 在twiki/bin目录下的.htaccess文件中,也需要把相应的改成pl后缀.如: <Files "viewauth"> require valid-user </Files> 改成: <Files "viewauth.pl"> require valid-user </Files> 5 其他参考 顺利的安装会有同样的顺利,而失败的安装却各有各的原因。如果你仍然有问题,选择下列途径: 首先选择参考TWiki安装向导, 对于中文TWiki的安装,当然要参考如何安装TWiki(中文TWiki的安装). 对于英文比较好的朋友,可以直接到TWiki.org官方网站上去。 还有CheDong的TWiki的安装备忘, 竹笋炒肉的TWIKI手记 艾迪的回答:TWiki是一套基于Perl的wiki实现(为什么又是perl?):功能强大,速度很快,核心存储使用纯文本实现,不需要数据库的支持,因此非常适合企业级的大规模应用:在很多公司都有成功的应用案例。 Wik应用路径相对传统内容发布系统比较固定和扁平, 内容之间的连接也非常多 充分体现了Well referenced with easy navigation.... http://www.chedong.com/twiki/bin/view/TWiki/TWikiPreferences http://www.chedong.com/主目录/程序目录/动作/子库名/页面 TWiki本身的配置分成3级 网站级别: 站点级别的配置都在TWiki/目录下TWikiPreferences ChangePassword ResetPassword等 目录级别: 每个目录下的WebPreferences文件中设置 比如 Main/WebPreferences 页面级别: 每个页面可以设置一些访问参数 搭建使用TWiki的时候, 会发现TWiki中很多的配置居然也是用WIKI页面管理的: 真正将模板技术用到了及至。具体的配置位于TWiki/TWikiPreferences TWiki语法本身就是一个非常完整的模板语言, 而网站的很多设置都可以使用 Set PARAMETNAME = value 这样的语法进行设置 以下是我在安装时的备忘:(不断更新中) 2006-1-1更新: 1 增加了认证和用户分组方面的配置说明; 2 增加了文德的参考文档;
从TWiki.org下载最新稳定版本: Wiki20040902.tar.gz那个版本有安全漏洞,我最近下载到的是 TWiki20040904.tar.gz 将twiki解压缩后移动到/home/apache/twiki目录下:将目录下的文件设置为apache服务可以读写, 比如apache实用nobody 用户运行, 那么twiki目录下也要设置为nobody读写. 目录下的列表分布: bin <== scripts data <== data: the all meta: structure data and un-structure data index.html <== default page lib <== support libary license.txt <== License pub <== the public data pub-htaccess.txt <== pub readme.txt <== README robots.txt <== robots.txt: crawler scripts root-htaccess.txt <== example of root .htaccess file subdir-htaccess.txt <== example of .htaccess file in sub directory templates <== default templates TWikiDocumentation.html <== TWiki documents TWikiHistory.html <== TWiki history UpgradeTwiki <== Upgrade scripts 缺省的 data 目录下: debug.txt <== debug log _default <== default templates wiki page log200501.txt <== monthly logs log200503.txt <== monthly logs log200504.txt <== monthly logs log200505.txt <== monthly logs Main <== package Main(default) mime.types <== apache configure Sandbox <== package Sandbox(testing / trail) Trash <== package Trash bin TWiki <== package Twiki: admin porpose warning.txt <== warning log 每个目录下:就是一个“库” 一个文件 + 一个版本文件 WebHome.txt WebHome.txt,v编辑时还会有临时:锁定文件 WebHome.lock 如果不改动模板: chmod a-w templates chmod g-w templates Apache的配置修改: 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> 修改TWiki.cfg 到相应的目录和配置下:大部分是缺省路径修改 diff TWiki.cfg /home/apache/chedong.com/twiki/lib/TWiki.cfg 62c62 < $defaultUrlHost = " http://your.domain.com"; --- > $defaultUrlHost = " http://www.chedong.com"; 72c72 < $pubDir = "/home/httpd/twiki/pub"; --- > $pubDir = "/home/apache/chedong.com/twiki/pub"; 74c74 < $templateDir = "/home/httpd/twiki/templates"; --- > $templateDir = "/home/apache/chedong.com/twiki/templates"; 76c76 < $dataDir = "/home/httpd/twiki/data"; --- > $dataDir = "/home/apache/chedong.com/twiki/data"; 227c227 以下部分是为了将字符集设置为UTF-8(缺省是英文en_US.ISO-8859-1) < $useLocale = 0; --- > $useLocale = 1; 244c244 < $siteLocale = "en_US.ISO-8859-1"; --- > $siteLocale = "zh_CN.UTF-8"; 1 请注意参考:IANA字符集命名定义 2 twiki上缺省的显示时间为GMT时间, 可以改lib/TWiki.cfg设置成servertime servertime还是和本地工作时间比较相似 修改:bin/setlib.cfg 虽然缺省不改也能运行,但是很多plugins可能没有那么智能,最好改成绝对路径 diff ../bin/setlib.cfg /home/apache/twiki/bin/setlib.cfg 40c40 < $twikiLibPath = '/home/apache/twiki/lib'; --- > $twikiLibPath = '../lib'; 如何设置twiki编辑/上传文件需要认证? 首先设置用户名和密码: 在data目录下缺省有一个 .htpasswd文件,缺省里面只有TWikiGuest一个账号, 密码是guest(是加密的) 要注册的新用户的密码也是在这里 TWiki本身有2种级别的新用户注册机制: 一种是公开注册: 可以直接获得初始化密码; 一种是内部注册: 不可以设置初始化密码, 注册完成后需要将通知邮件转发给后台管理员,然后请管理员在后台手工在.htpasswd文件中加入相应账号的名称和密码; 具体选择那种注册模式, 就看网站的性质了,在注册之前,最好在bin/view/TWiki/TWikiPreferences中将管理员的邮件设置好(目前这个页面是TWikiGuest也能修改的) 同时还可以设置好的还有WIKILOGOIMG 等信息 Set WIKIWEBMASTER = chedong AT chedong.com 如何启用认证和设置对那些操作启用认证: 认证的启用需要设置.htaccess文件, twiki在程序目录下缺省有一个文件: /bin/.htaccess.txt 重命名成 .htaccess 将其中的!FILE_path_to_TWiki!和!URL_path_to_TWiki! 替换成twiki的后台物理路径和网站路径设置就好了,如果修改完成后没有启作用, 可能是httpd.conf配置文件中设置了 AllowOverride None 改称 AllowOverride All .htaccess就启用了. 这样设置后: 用户设置访问edit/attach等写入操作时候会需要经过data/.htpasswd中的用户名 设置了认证启用后: 再设置认证用户之间的分组和管理关系 先设置谁能进入TWikiAdminGroup组 Main/TWikiAdminGroup 这个页面缺省是任何人都可以编辑的 设置好Set GROUP = UserAndy UserBob 这样的配置后 再将当前页面的 Set ALLOWTOPICCHANGE = TWikiAdminGroup 前面的#注释去掉, UserAndy就被设置为管理员了,而且管理员文件也只有管理员组可以修改, 如果改坏了, 就只能让系统管理员改 Main/TWikiAdminGroup.txt 源文件了. |