代码改变世界

eGroupWare 协同工作平台的搭建及使用

2008-01-08 19:49  老博客哈  阅读(14687)  评论(5编辑  收藏  举报

eGroupWare 协同工作平台的搭建及使用
           农夫三拳@seu.iws
  


      最近在IWS里面参与了一个B2B的项目, 师兄建议使用协同工作平台来规范化整个开发过程。于是我在网上一通搜索,找了一些以PHP开发的开源系统工作平台,包括: Simple GroupwarePHProjektGForgeeGroupWarephpGroupWare。试用了这些系统的demo, 从用户体验,本地化程度及功能特点,我最终选择了eGroupWare作为这个项目的协同工作平台。

        eGroupware是一个多用户,在以PHP为基础的API上的定制集为基础开发的,以WEB为基础的工作件套装。目前可用的模板包括:电子邮件,通讯录,日程表,记事簿(备注,任务,电话),内容管理,论坛,书签,维客等。

     由于本人以前没有接触过PHP相关的技术,所以从搭建eGroupWare到配置花了两个下午的时间,中途被无数个问题折磨。综合考虑,我想下面的部分主要从两个部分谈起,一个是eGroupWare的安装及配置,另外一个是eGroupWare的使用。

eGroupWare的安装及配置

      在配置eGroupWare之前,我最先查阅的是BugFree的帮助文件,知道了PHP相关应用通常需要Apache+PHP+Mysql。
二话不说,先准备环境:
    Windows XP Sp2
    apache_1.3.39-win32-x86
    php-5.2.5-Win32
    MySql 5.0  (MySql-Front V3.2)
    eGroupWare-1.4.002

*这里发生了一件搞笑的事情,我在sourceforge上下载eGroupWare包的时候,我把eGroupWare-gallery-1.4.002 当作eGroupWare-1.4.002了,结果等我配好之后才发现不对

      我最先安装的是apache(apache的安装只要一直next就可以成功完成),然后解压php进行相关配置。这里的配置在网上可以搜出一大堆文章,其中不乏一些图文版。但是要注意的是在配置的过程中:1.注意自己apache和php的版本,不同的版本配置不太一样 2.决定采用CGI还是嵌入模块的方法进行安装。 其实那么多文章我看了很多,每个都说的不一样。刚开始我一直配置不成功,phpinfo()就是显示不出来。这里推荐给大家的方法是使用PHP自带的帮助,可以在php解压后的install.txt中找到具体步骤。另外我还推荐把php的目录和php下的ext目录加入到系统环境变量中,这样可以少了很多麻烦事,然后加完之后一定要记得重启哦

      这里不得不提的是我犯了一个以前犯过很多次的错误:在我检查配置n次后,始终无法正确查看 test.php文件,浏览器显示为文本文件。殊不知那个文件在隐藏后缀的情况下实际上是text.php.txt

      还有一个注意点,在php.ini中加入LoadModule php5_module "C:/php/php5apache.dll"的时候,一定不要把php5apache.dll写成php5apache2.dll或者其他。因为前者是面向apache1.x系列,后者面向2.0的。还有在ini中书写文件路径时,一定要用"/",而不是"\",后者被理解为转义字符。

      上面的步骤做完之后就可以拿一个简单的php页面做测试了,如果能够正常显示,配置的就没问题了。如果apache服务有问题或者php仍然无法正常显示,请重新阅读安装说明并查看windows的应用程序日志。

      下面的工作就是安装eGroupWare了,把下载的包解压到您设定的DocRoot下(默认在XX:\Program Files\Apache Group\Apache\htdocs)。和eGroupWare Gallery2一样,eGroupWare的安装相当的人性化,只需在浏览器中定位到http://XXXX/egroupware/setup/ 就可以进行安装了。STEP by STEP,如果出现error或者warning,只要参照网页上面的出错提示一步步做就没问题了。中间需要安装MySql,这个也只需要一直next就可以了。配置好header.inc.php和admin相关之后基本上eGroupWare的配置就结束了。 注意这些所有的配置过程都可以通过以后登录setup这个页面进行修改的。

eGroupWare的使用 
      首先让我们看看eGroupWare的主要模块组成! 

[felamimail 电子邮件]

一个只支持 IMAP 协议(大部分是 POP3)的邮件阅读程序,它支持 Sieve 邮件过滤规则语言(RFC 3028),也能够在 eGroupWare 建立新帐号时,同步在Cyrus IMAP或是Postfix等邮件服务器上建立对应的邮件帐号;只是目前对于欧美语系以外邮件的支持还不算完整。

[calendar 行事历]

eGroupWare 的行事历提供许多弹性,能够在安排行程时检视同样群组的使用者行程,也能够由系统协助查询时间的空档,避免在安排行程时产生冲突。除了一般常见到的重复行程、行程提醒与相关字段外,它还能够与eGroupWare的其它模块产生连结,并且安排行程的与会人员、需要的资源(例如会议室、投影机等),考虑的相当周到。

行事历、通讯簿与记事本等模块能够透过 SyncML 协议与计算机、手机和PDA等设备进行资料同步,行程的资料也可以透过 iCAL 或是 CSV 格式汇入,以及汇出 iCAL 格式资料。

[timesheet 时间表]

时间表也可以称之为工时记录表,主要是配合项目管理模块使用,用来让使用者根据项目中的工作内容提报工时,方便会计部门进行项目成本的估算。

[manual 线上说明]

线上说明是基于 wiki 模块延伸出来的功能,主要是希望在官方网站汇集来自世界各地使用者提供的操作说明,透过这个模块就可以下载官方网站最新版本的资料,只是目前资料是以英语、德语为主。

[resources 资源管理]

许多公司内部经常发生抢资源的情形,像是约了一个客户来公司却发现所有的会议室都在使用中,或是等半天就是借不到那个神奇的投影机。资源管理模块就是为了避 免类似情况而设计,可以让使用者预约包括会议室、投影机、公务车或是各种公用资源,避免因为行程上的冲突造成损失。…当然,前提是没有人有”插队”的特权。

[projectmanager,projects 项目管理]

projectmanager是新版的项目管理模块,前一个版本为 projects ,前者与其它模块有较佳的整合,而后者则是兼顾了许多细节;虽然两个模块各有拥护者,但是都来自同一个开发者,而这个开发者未来应该只会维护新版的项目管理模块。

[mydms,filemanager 档案管理]

旧版的档案管理模块 filemanager 只是单纯提供档案上传与下载的管理功能,而 mydms 提供了许多进阶功能,像是版本控制、关联档案、异动通知与权限控管等;filemanager也能够控制权限,不过仅限于模块本身的增、删、改、查, mydms 进一步做到控制类别与个别档案的权限,适合对于资料安全诉求较高的组织。


[fudforum 讨论区]

FUDforum 本身就是国外的一个热门讨论区系统,除了大部分讨论区系统可以看到的功能外,甚至能够透过与新闻群组、通讯论坛等系统整合,让部份从BBS起家的网 站能够移转或是保留现有系统运作。eGroupWare所内建的 FUDforum 版本已经没有再更新,不过功能已经能够满足大部分需求。

[tts 问题传票系统]

传票给人的感觉很像会计在使用的,其实这个模块有点类似内部联系单,像是计算机坏了需要人处理、客户留言需要转给业务、或是初一十五拜拜要请人去采买牲礼等都 可以透过这个模块”交办”或是”求救”;因为这样的需求可能像是A部门接到B部门的客户电话,然后将资料转给B部门的主管,再由B部门的主管转给适当的业 务处理,信息需要传来传去,所以称之为传票。

[messenger 线上传讯]

这个模块提供个人与个人之间的留言功能, 不受限于时间与地理位置限制,像是A部门的某甲男心仪B部门的某乙女,就可以透过这个功能留言给某乙女,请她去吃个饭;公司是否允许这样的行为不清楚、某 乙女会不会把某甲男的简讯传给其它人看也不知道,线上传讯就是这么样的一个工具。

[workflow 工作流程]

工作流程是eGroupWare中较复杂的模块之一,主要用来进行商业流程的自动化,像是文件、信息或任务在一个流程中的参与者中如何传递、处理与通知,可以定义相当多的自动处理规则;这个模块的前身是 tikiwiki GalaxiaWorkflow,一个以活动为基础的工作流程系统,需要花些时间理解其中的概念才能够应用。

[wiki 协同编辑]

资讯圈子中的朋友对于 wiki 这个新名词应该不陌生,也有人将它翻译作”快记”,大部分的人都将它拿来当作知识管理的工具之一;eGroupWare内建的 wiki 模块与需要记忆大量特殊语法的wiki系统不同,使用了所见即所得编辑器处理大部分的内容。

[jinn 网站管理]

JiNN 代表了 JiNN is Not Nuke 的递归缩写,作者藉此传达对于 Nuke 系统的热门相当不以为意;这个模块有点像是进阶的数据库管理工具,能够同时让多个人参与多个网站数据库的管理工作,只是操作方式需要花些时间理解。

举例来说,在JiNN中定义了一个网站后,JiNN会去撷取指定网站的数据库信息,接着可以根据数据库中的资料表定义对象;对象中除了资料表的字段名称与属性外,还能够进一步定义数据域位间的关联以及数据域位输入的方式、限制等。相关操作完成后就可以透过JiNN对该网站进行资料的增、删、改、查,甚至是制作报表等进阶功能,等于是只要将一个网站的前端处理完成就能够用它来进行管理,功能还不会比自己设计的管理接口逊色。

[phpbrain 知识管理]

最简单的知识管理方式就是搜集常见问答,接着将许多相关的文章串连在一起,必要时在以这些问答内容为基础撰写完整的教学,甚至延伸出其它格式的教学内容; eGroupWare中的知识管理就是基于这样的概念设计,除了发问、回答、自问自答外,还能够连结内部文章或是外部网站,并且附加档案、评论等,所有的操作也会有详实的纪录保留。

[chatty 聊天室]

Chatty是一个实时的聊天室,也是修改自一个独立的程序,不过是原作者带着它加入eGroupWare中;透过它可以检视目前有哪些人上线,并且与上线的人实时传递讯息。比较特别的地方是这个模块是以 AJAX 技术设计,因此并不会像部份网络聊天室一样频繁的更新画面(这样子对眼睛很不好…),对于服务器也不会造成太大的负担。


    当然,对我们的项目而言,并不需要如此多的功能,因此我也只挑选了部分的应用程序进行安装,这要得益于eGroupWare的插件式的应用程序集成接口。要指出的是,尽管eGroupWare很强大,但是有很多地方可能使用起来不太习惯,例如在配置“新闻管理”时候,需要先进行权限分配才可以进行添加操作(ACL很强大);"bug跟踪"里头删除需要在编辑里面将状态改为"deleted"才行等等。另外,eGroupWare的汉化不是很完全。

下图为系统的一些截图:

日程表


通讯录


记事簿


项目管理


资源


时间表


bug追踪


网上文件柜



新闻管理


更多精彩要亲自体验

小结

     整个配置的过程掌握了许多知识也回顾了一些知识,虽然目前的系统能够正常运行,但是我在配置过程中并没有过多的考虑系统的安全问题,例如PHP的目录访问限定,普通用户组的修改删除权限等等。