以前曾经在win2000+IIS5上配置过了Mantis,整个过程因为PHP基于IIS的配置相对简单没怎么留意,时过一年后想重新搭建Mantis又不想装臃肿的IIS,索性选择了Apache2。
整个过程不乏使用Google大法等手段从配置Apache上的PHP到部署Mantis,辛苦一番之后眼瞅着网上很多东西在新的版本都不怎对了,自然记录下来已备后用。
简介
Mantis作为一个轻量级的开源BUGs跟踪系统,基于PHP+MySQL,后台的数据库默认MySql,也可选择PostgreSql。
关于Mantis更多信息请到http://www.mantisbt.org/
Mantis 1.0.1 Mantis最新的版本是1.0.1 (更多Mantis信息请到http://www.mantisbt.org)
mysql-5.0.19-win32 放着最新的MySql5还去用MySql4有点TU了(更多MySql信息请到http://www.mysql.com/)
php-4.4.0.tar.gz 对于PHP没有选择最新的PHP5,也没有采用win installer,而是直接用了二进制压缩包。也省得安装之后还要把必要文件copy来来去去的,麻烦。(更多PHP信息请到http://www.php.net)
apache2.0.54 Apache使用了apache_2.0.55-win32-x86-no_ssl.msi (更多Apache2信息请到http://httpd.apache.org)
安装Apache2没什么好说的,一路Next就OK了,我把Apache2安装在了d:/tmtool/apache group目录中。
用文本编辑器打开D:/TMTOOL/Apache Group/Apache2/conf/httpd.conf配置文件作如下修改:
1)指定web服务器apache的文档根路径 document_root
doc_root = d:/tmtool/webroot
2)在LoadModule ssl_module modules/mod_ssl.so后加入
LoadModule php4_module "d:/tmtool/php/sapi/php4apache2.dll"
3) 在
AddType application/x-httpd-php .php .phtml .php3 .php4
AddType application/x-httpd-php-source .phps
4) 调整默认文档存放位置DocumentRoot:
DocumentRoot "d:/tmtool/webroot"
增加指定默认首页类型:
DirectoryIndex index.html index.html index.php index.php3
5) 调整
# This should be changed to whatever you set DocumentRoot to.
#
6)新增PHPIniDir定位php.ini
# configure the path to php.ini
PHPIniDir "d:/tmtool/php"
由于使用了二进制压缩包,直接把解压缩之后的PHP目录copy到d:/tmtool/php中,在PHP4主目录中会有cli、dlls和sapi等目录,如果是采用installer安装的话目录里只有sessiondata和uploadtemp等目录,最后还是需要通过二进制包copy来sapi目录,这就是俺不用installer的原因,嘿嘿。
1)将php的安装目录加入到系统变量PATH中
2)设置PHP
将php根目录下的php.ini-dist 或者 php.ini-recommended copy并改名为php.ini。
3) 调整PHP.ini中指定的扩展目录:
extension_dir = "d://tmtool//php//extensions"
4) 复制d:/tmtool/php/php4ts.dll到system32目录下
完成了Apache2和PHP的配置之后重启Apache2,在在默认目录(d:/tmtool/webroot)下新建index.php:
echo "hello world";
?>
浏览器访问http://localhost看到hello world就ok了。
将下载的Mysql5安装包解压缩(d:/tmtool/mysql/bin)就算ok了;
运行bin目录下的mysqld-nt.exe启动mysql服务。
将解压缩后的mantis copy到php的发布目录中d:/tmtool/webroot/mantis,由于1.0.1中取消了原来/sql/db_generate.sql 的数据库脚本而采用了通过系统来建立环境。通过浏览器访问http://localhost/mantis/admin/install.php可看到部署mantis数据库环境的界面。
默认的数据库是bugtracker,我更喜欢mantis,注意要使用有管理员权限的用户来建立数据库,我用了root。
设定好了install/upgrade database之后正常情况下在输出反馈页面下一片绿色的good,那就是ok了,要是有红色的bad,那要调整好了再初始化到ok才行,这时候在mysql里会新增了一个库(我的是mantis),还有下面的很多以mantis_开头的表,到此数据库初始化结束。
1)将d:/tmtool/webroot/Mantis中的config_inc.php.sample复制一份,改名为config_inc.php,修改其中的设置;
【tips】在config_defaults_inc.php中保存这Mantis的默认设置:用户自己的设置信息保存在config_inc.php中,如果某个选项在config_inc.php中有设置,则系统使用config_inc.php中的设置,否则使用config_defaults_inc.php的系统默认设置;config_inc.php.sample则是Mantis给出的一个用户设置文件例子。
我们根据情况修改config_inc.php文件中的设置,设置很简单,各个参数的在config_defaults_inc.php都有很详细的说明。
下面是我的一些自定义参数,其中涉及jpgraph和phpmailer的内容之后说明:
$g_use_iis = ON; # 使用IIS
$g_show_version = OFF; # 不在页面下部显示 Mantis的版本号
$g_default_language = ‘chinese_simplified’; # 默认语言为简体中文
$g_show_project_menu_bar = ON; # 显示项目选择栏
$g_show_queries_count = OFF; # 在页脚不显示执行的查询次数
$g_default_new_account_access_level = DEVELOPER; # 默认用户级别
$g_use_jpgraph = ON; # 使用图形报表(jpgraph)
$g_jpgraph_path = ‘ D:/TMTOOL/WebRoot/mantis/core/jpgraph/src/’; # JPGraph路径 ,注意最后的’/’要加
$g_window_title = ‘Mantis Bug 跟踪管理系统’; # 浏览器标题
$g_page_title = ‘Rink的BUGs跟踪管理系统’; # 页面标题栏 $g_enable_email_notification = ON; # 开通邮件通知
$g_smtp_host = ‘smtp.***.com’; # SMTP 服务器
$g_smtp_username = ‘***’; # 邮箱登录用户名
$g_smtp_password = ‘***’; # 邮箱登录密码
$g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件
$g_phpMailer_path = ‘D:/TMTOOL/WebRoot/mantis/core/phpmailer/’; # PHPMailer 的存放路径
$g_phpMailer_method = 2; # PHPMailer 以 SMTP 方式发送 Email
$g_short_date_format = ‘Y-m-d’; # 短日期格式,Y 大写表示 4 位年
$g_normal_date_format = ‘Y-m-d H:i’; # 普通日期格式
$g_complete_date_format = ‘Y-m-d H:i:s’; # 完整日期格式
完成以上设置以后,你就可以使用Mantis了,打开浏览器,输入http://localhost/mantis,应该就可以看到Mantis的登录页面了,你可以用默认用户名administrator和密码root登录进去,进行管理设置。
在Mantis目录下有一个admin目录,这是Mantis管理员进行管理Mantis的,比如之前我们构建数据库环境的install.php等。使用这个模块可以检查你的Mantis是否安装完全,对旧版本的Mantis进行升级,对Mantis的页面CSS文件进行修改;使用这个管理模块是不需要用户名和密码的,因此任何人都可以通过这个管理模块查看你的Mantis系统信息,而且由于有升级模块,在这里还可以直接对数据库进行修改。
因此Mantis会建议在配置完成后将这个admin目录删除;注意一定是删除而不是改名!改名后仍然是可以访问的!
在添加一个具备管理员权限的用户后,删除系统默认的administrator用户。
默认情况下,Mantis使用内置的Mailto()函数进行邮件的发送,包括新用户注册发送密码、Bug改变提醒、重设密码等邮件的发送都使用MailTo()来完成,不过实际使用中发现,MailTo函数好像不支持需要校验的邮件服务器。其自身携带的PHPMailer配置起来也有问题,所以我直接将下载的PHPMailer覆盖Mantis里附带的Mailer(D:/TMTOOL/WebRoot/mantis/core/phpmailer)。来发送邮件。
关于更多PHPMailer请到http://phpmailer.sourceforge.net。
3)修改PHP.ini,找到include_path,增加D:/TMTOOL/WebRoot/mantis/core/phpmailer目录;
4)如上表所示,设置$g_use_phpMailer、$g_phpMailer_path和$g_phpMailer_method三个参数;
5)现在应该就可以使用PHPMailer进行邮件发送了;
默认情况下,Mantis的图形报表是关闭的,因此在Mantis的报表中看不到“图形报表”的入口,需要安装JPGraph模块并设置$g_use_jpgraph为ON才能打开图形报表;
1)下载JPGraph:从http://www.aditus.nu/jpgraph/index.php下载JPGraph的安装文件,当前最新版本是jpgraph-1.20.3;
2)将下载下来的jpgraph-1.20.3.tar.gz解压缩到D:/TMTOOL/WebRoot/mantis/core/jpgraph目录下;
3)打开config_inc.php文件,修改$g_jpgraph_path为JPGraph的src目录,$g_use_jpgraph为ON;
4)修改PHP.ini文件,激活“extension=php_gd2.dll”和“extension=php_iconv.dll”;另外如果extension_dir项不正确,请把extension_dir改为正确的值。
5)将PHP/dlls下面的iconv.dll复制到Windows/System32目录下,以上两个步骤使PHP自动载入php_gd2和php_iconv.dll模块,这两个模块是JPGraph在显示图表和进行汉字编码转换是所必须的;
6)现在再打开Mantis的统计页面,可以看到多了图形报表,分别按状态等进行统计的图形报表,包括柱图、饼图和线图,但是图形中有很多乱码,那是因为Mantis中默认是通过UTF-8设置JPGraph,而我们界面语言是用简体中文,因此汉字显示出来都是乱码。
解决方法很简单:
1) 在Mantis/config_inc.php中将$g_graph_font = ''改为$g_graph_font = 'simsum';
2) 由于Mantis中图形报表默认字体里不含有中文,因此我们要在Mantis/core/graph_api.php中相应增加对图形标题等设置字体代码;
在function graph_get_font() {...}中font_map增加'simsum' => FF_SIMSUN ,以供Mantis调用。
这样以来,在图形报表中就能看到简体中文了。