强大的BugTracker工具——Mantis环境搭建系列四(Mantis)

    早在去年年底的时候就准备写这篇文章了,CTO张也建议过我好几次,希望我能将这篇文章分享出来。然而,由于个人和工作的原因,直到今天才有时间坐在这里来和大家分享,实在抱歉。

    这只是一篇入门级的运行环境搭建的介绍,主要涉及:Apache、PHP、MySql和Mantis.

    关于Mantis的具体使用方法,我将在后续的文章中,再跟大家一一介绍。

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

    Mantis                                      

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

   

下载地址:http://sourceforge.net/projects/mantisbt/files/mantis-stable/

(1)上传,安装配置

将下载到的压缩包上传到服务器空间(默认是apache安装目录下的htdocs目录),解压,重命名(这里为mantisbt),然后访问类似下面的url:http://localhost:8080/mantisbt/admin/install.php

       

        

配置你的数据库信息,一定要填写正确,后面的admin信息可以留空。

点击做下脚的continue链接,进入到登录页面

这时候,页面上会提示您需要删除服务器端的admin目录(该目录只会在安装时起作用),为了安全起见,我们删除掉该目录(或重命名)。同时,页面上会提示我们需要使用默认用户名密码登录,然后自行修改该帐号,或删除。然后刷新一下页面,使用默认的用户名密码administratorroot来登录。

(2)配置邮箱、时区、语言及页面结构等信息,编辑config_inc.php文件。完整的配置信息在config_defaults_inc.php中,config_inc.php示范文件在config_inc.php.sample中。通常不需要修改config_defaults_inc.php文件,只需要在config_inc.php文件中配置新的信息来覆盖config_default_inc.php中的默认配置项。

<?php

    $g_hostname                    = 'localhost';

    $g_db_type                     = 'mysql';

    $g_database_name               = 'mantisbt';

    $g_db_username                 = 'root';

    $g_db_password                 = 'wirror800';

    

    #[语言设置]

    $g_default_language = 'chinese_simplified';

 

     #[email]

    $g_administrator_email          = 'wirror800@qq.com';

    $g_webmaster_email              = 'wirror800@qq.com';

    $g_from_email                      = 'wirror800@qq.com';

    $g_return_path_email            = 'wirror800@qq.com';

    $g_enable_email_notification   = ON;    #OFF,表示不使用邮件系统,创建用户的初始密码将为空。

    $g_phpMailer_method            = 2;     #smtp发送邮件

    $g_smtp_host                        = 'ssl://smtp.gmail.com:465';

   //php.ini中,将php_opensslextension前面的分号去掉,

   //然后还需要下载最新的class.phpmailer.php文件覆盖原来的文件.

    $g_smtp_username                = 'wirror800@gmail.com';

    $g_smtp_password                = 'wirror1234567890';

 

   #[timezone]

   putenv("TZ=Asia/Shanghai");     #putenv函数不起作用,可在php.ini中修改date.timezone = Asia/shanghai

 

   #[jpgraph1.2版本中,jpgragh已以插件的形式被集成为mantisGraph,可在后台插件管理中安装该插件]

    #$g_use_jpgraph                      = ON;

   #$g_jpgraph_path                    = './jpgraph/src'. DIRECTORY_SEPARATOR;  

   #$g_graph_font                       = 'simsun';  #需要修改core/graph_api.php文件,加入'simsun' => FF_SIMSUN,

   #$g_graph_window_width           = 800;

    #$g_graph_bar_aspect             = 0.9;

   #$g_graph_summary_graphs_per_row = 2;

   #$g_system_font_folder           = 'c:/WINDOWS/Fonts/';

   #$g_font_per_captcha              = 'simsun.ttf';

 

   #[relationship graph -- Graphviz]

   $g_relationship_graph_enable     = OFF;

   #$g_system_font_folder           = 'c:/WINDOWS/Fonts/';

   #$g_font_per_captcha               = 'simsun.ttf';

 

    #[login page]

    $g_allow_signup                      = OFF;

    $g_lost_password_feature        = OFF;

    

    #[page layout]

    

    #[wiki]

    $g_wiki_enable                       = OFF;

    

    $g_default_new_account_access_level = DEVELOPER; #默认用户级别

    

?>

(3)配置中文图表(如果是linux系统,有些中文字体在系统中是不存在的,有两种方案可以解决。I如果是本地服务器,可将需要的字体安装在本地系统字体目录下;II如果是远程租用服务器,没有修改服务器本地配置的权限的时候,可以将字体拷贝到具有访问权限的某个目录下,然后修改jpgraph的源码

<jpg-config.inc.php需要修改一处

//DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/"); #改成

DEFINE("TTF_DIR","$SystemRoot/fonts/"); #fonts后面一定要带"/"

>中的字体目录。)

下载jpgraph免费版:http://hem.bredband.net/jpgraph2/jpgraph-3.0.7.tar.bz2

1.1.8之前的版本配置

1).可以在http://www.aditus.nu/jpgraph/jpdownload.php下载最新版的JPGraph,请注意JPGraph 1.x版本是针对php42.x是针对php5的,请下载对应版本。

2).将下载包解压到一个目录下,我解压到mantis下的jpgraph目录,定义为$JPGraph

3).然后在config_inc.php中添加下面几行:

$g_use_jpgraph = ON;

$g_jpgraph_path = './jpgraph/src/';      //你也可以按照你的地址填写文件的绝对路径。

4).php.ini将“;extension=php_gd2.dll”前面的分号删除,这个模块是JPGraph在显示图表和进行汉字编码转换是所必须的。

(3) JPGraph的中文显示

据说1.0以后的版本已经能够很好的支持报表中文显示,但可能PHP5的问题,我这里还是乱码,这里列出参考别人的方法我所做的配置。

1)如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的。

JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFontMantis没有做这个操作,因此汉字显示出来都是乱码。

解决方法是增加对图形设置字体的代码;

2)打开$mantis/core/graph_api.php,查找:graph_get_font(),在其中添加一行

'chinese_gbk' => FF_SIMSUN,

3)config_inc.php文件中添加

$g_graph_font          = 'chinese_gbk';

4)打开$JPGraph/src/jpg-config.inc.php

查找DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');

改为DEFINE('CHINESE_TTF_FONT','simsun.ttc');

jpg-config.inc.php也可以不改,如果生成的图形中的字体想由自己定义,可以这样改。

这个时候,如果你选择的语言是chinese_simplified,现在你的图形报表应该就可以显示中文了。

5)但如果你选择语言跟我一样是chinese_simplified_utf8,则发现报表显示还是乱码。

原来JPGraph中处理的时候比较bt,只要看到字体设置是FF_SIMSUN,就认为字符串编码是GB2312,输出的时候都要转成UTF8

单实际上已经是UTF8了,根本不用转。

直接修改代码:

打开JPGraph下的jpgraph.php文件,搜索其中:

elseif( $aFF === FF_SIMSUN ) {

     // Do Chinese conversion

     if( $this->g2312 == null ) {

  include_once 'jpgraph_gb2312.php' ;

  $this->g2312 = new GB2312toUTF8();

     }

     return $this->g2312->gb2utf8($aTxt);

}

改为:

elseif( $aFF === FF_SIMSUN ) {

     // Do Chinese conversion

  /*

     if( $this->g2312 == null ) {

  include_once 'jpgraph_gb2312.php' ;

  $this->g2312 = new GB2312toUTF8();

     }

     return $this->g2312->gb2utf8($aTxt);

  */

  return $aTxt;

}

就是把转换编码的代码注释掉,最好不要直接删掉了,不然以后想改回来就麻烦了。

这样改实际是有些问题,如果mantis中有部分用户的语言选择为chinese_simplified,另一部分选择为chinese_simplified_utf8就不行了,

默认情况下只有管理员和经理才能看到报表,如果让所有人都能看到报表需要将config_defaults_inc.php$g_view_summary_threshold = MANAGER;修改为$g_view_summary_threshold = ANYBODY;

1.1.8之后的版本安装配置

默认的系统使用自己绑定的mantis graph,我们也可以选择安装使用jpgraph

1、安装JPGRAPH及改程序

(1)安装:JpGraph 3.0.7,从http://www.aditus.nu/jpgraph/jpdownload.php下载最新版本,记得看清对应的PHP版本。解压缩其中子目录srcmantis/library目录下,改名为jpgraph

(2)修改文件mantis/library/jpgraph/jpgraph_ttf.inc.php

      elseif( $aFF === FF_SIMSUN ) {

           // Do Chinese conversion

           if( $this->g2312 == null ) {

               include_once 'jpgraph_gb2312.php' ;

               $this->g2312 = new GB2312toUTF8();

           }

           return $this->g2312->gb2utf8($aTxt);

       }

改为

      elseif( $aFF === FF_SIMSUN ) {

           // Do Chinese conversion

       return $aTxt;

       }

2、后台设置:

1)安装插件:管理--》管理插件--》安装MantisGraph插件

2)修改程序:

*文件mantis/plugins/MantisGraph/pages/config.php(记得本文件改完后用UltraeditASC-IIUTF-8的转换功能保存为UTF-8格式文件,与总体字符集保持一致):

$t_current_font_selected = array(

       'simsun' => false,//增加这一行

       'arial' => false,

//--------------------------------------

       Sans-serif:<br />

       <label><input type="radio" name="font" value="simsun"<?php echo print_font_checked( 'simsun' )?>/>宋体</label><br /> //增加这一行

       <label><input type="radio" name="font" value="arial"<?php echo print_font_checked( 'arial' )?>/>Arial</label><br />

//---------------------------------------------------------------------

*文件mantis/plugins/MantisGraph/pages/config_edit.php

if ( plugin_config_get( 'font' ) != $f_font ) {

       switch ( $f_font ) {

               case 'simsun':   //增加这一行

               case 'arial':

//----------------------------------------------------------------------

*文件mantis/plugins/MantisGraph/core/graph_api.php

               $t_font_map = array(

                       'simsun' => FF_SIMSUN,  //增加这一行

                       'arial' => FF_ARIAL,

3、设置并启用:

1)管理--》管理插件--》点击“MantisGraph 1.0”名字进入设置界面,

2Graph library to use选择“Jpgraph”,Font选择“宋体”

3)点击“更改配置”后再看看统计报表中内容,是否已如你所愿。

MantisGraph插件的中文化文件,放在mantis/plugins/MantisGraph/lang目录下即可。

 

 


版权声明:本文为wirror800原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。