项目目前使用的DotProject是2.1 rc1版本,并且做过汉化和解决甘特图乱码的问题。因为最近工作不太忙,就想给DotProject做下升级,网上查到现在最新版本是2.1.2,从CSDN上花10分down了一个汉化后的中文版,体积6.22M,不含simsun.ttc,simhei.ttf这两个字体,需要手动从c:\windows\fonts目录复制过来。我很奇怪,为什么下载之后进行回复,分数没回来啊?55555555……
升级过程简要描述
1 备份数据库和源程序目录
备份数据库可以采用导出.sql、.xml文件或者直接备份整个数据库目录,推荐备份数据库目录的方式,因为在mysql数据库中,你能看到的中文是以乱码存在的,导出到文件再从文件导入回来,在实际操作中,就有可能部分中文变成乱码。我就犯了这个错误,不小心把原dotproject数据库给删除了,从.sql文件恢复以后,再访问DotProject页面,很多中文就出现了乱码,不过幸好我有备份整个数据库目录,停止mysql服务后,还原数据库目录,再启动mysql服务,DotProject页面就没有乱码了。
源程序目录也要备份一下,以便升级后出现问题,可以和源文件比较一下,查出问题的原因。
2 下载DotProject-2.1.2.zip
上面已经说过,我是从CSDN上下载的汉化版本,你也可以到官网上下载原版,自己汉化。
3 正式升级
升级过程其实很简单,没有我之前想象的那么复杂。
打开浏览器,输入http://服务器地址/dotproject/install/,访问DotProject的升级页面,如下图所示:
这里是告诉你看一下config.php文件,设定数据库参数是否正确,否则升级的时候将不能连接到数据库。另外提醒你,最好将程序或数据库备份。确定这两点以后,就可以点击【Start Upgrade】按钮进行升级了。升级过程很快,几乎同步就完成了,但你可能会有个疑问,为什么页面下方没有成功的字样呢?其实,这个页面有点变形了,你把浏览器下方的滚动条往右拉动,是不是就看到Successful了。
4 升级中遇到的问题
- 还原数据库后,页面出现乱码
这个问题上面提到过,是从.sql文件还原的,至于其他备份文件如.xml,我没试过。解决办法就是使用备份的数据库目录来进行还原。
- 问题跟踪(Tickets)的搜索功能不能用
这个问题其实在2.1版本也有出现,只不过以前并没有真正使用这个功能。但是项目组从现在开始就要使用它,这次升级主要也是为了解决这个问题,但是升级后发现该问题仍然存在,上网查了一下,遇到这个问题的人不多,也鲜有发帖咨询的,不过还是被我找到了。解决方法就是修改php.ini文件,位于c:\windows\php.ini
找到register_globals = Off,修改为register_globals = on,然后重启apache。
- 新建跟踪单时出现错误
错误代码如下:
Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in d:\program files\greenamp\www\dotproject\modules\ticketsmith\do_ticket_aed.php on line 89
Warning: Cannot modify header information - headers already sent by (output started at d:\program files\greenamp\www\dotproject\modules\ticketsmith\do_ticket_aed.php:89) in d:\program files\greenamp\www\dotproject\classes\ui.class.php on line 511
很明显是发送邮件的问题,服务器并没有提供SMTP服务。解决办法很简单,如果你想实现发邮件功能,那么就在服务器上安装SMTP服务,然后修改php.ini,将sendmail_from和SMTP前面的分号去掉,然后保存,重启apache服务。或者在\modules\ticketsmith\do_ticket_aed.php的第89行前面增加2行代码。
ini_set("sendmail_from","name@yoursite.com");
ini_set("SMTP","mail.yoursite.com");
如果不想发邮件,我们项目组就不需要发邮件,那么可以让DotProject在新建跟踪单时不去执行发邮件的动作,修改\modules\ticketsmith\do_ticket_aed.php代码如下:
将第89行注释掉
//mail($ticketNotification[$priority], $AppUI->_('Trouble ticket')." #$ticket ", $message, "From: " . $CONFIG['reply_to'] . "\nContent-type: multipart/alternative; boundary=\"$boundary\"\nMime-Version: 1.0");
- 编辑讨论帖时页面布局乱,且没有提交按钮
该问题是由于SQL语句格式有误导致。解决方法是修改\includes\main_functions.php文件的第192行。
原代码
$q->addWhere("user_username LIKE '$user' OR user_id = " . $user);
修改后代码
$q->addWhere("user_username LIKE '$user' OR user_id = '" . $user."'");
- 文件页面出现异常
访问DotProject的文件菜单,页面出现异常信息,仍然是SQL语句格式有误导致,关键语句在max(DISTINCT f.file_version)这一句,搜索整个目录发现有2个文件包含这句代码。
\modules\files\index_table.php
\modules\files\folders_table.php
将两个文件的这句话修改为max(f.file_version),问题得以解决。
如果升级前有上传过文件,而升级时删除了原目录的话,该页面只显示出上传过的文件信息,却不能下载文件。我们在备份的目录中找到\files文件夹,并将它复制到DotProject根路径下,就能下载文件了。