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

来源:互联网 发布:手机版淘宝网首页 编辑:程序博客网 时间:2024/04/26 15:33

    早在去年年底的时候就准备写这篇文章了,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

 

    #[jpgraph 1.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目录下即可。