Windows下Bug管理系统MantisBT的安装和配置

Bug追踪和管理系统是成熟开发团队必经之路。它应该是一个面向所有用户的,用于Bug管理和讨论的开放性系统。开源里面比较流行的是Redmine和MantisBT。这篇文件记录了我在Windows下安装配置PHP和MantisBT的过程。

MantisBT和Redmine预览

这两套系统各有千秋,UI各具特色,功能上也是各有千秋,大家可以在做选择之前先预览官方的自己的Bug管理实例。如果有条件,建议亲自动手在自己电脑部署评估。

1 文件下载

注意一下版本的匹配,以下版本在我这里是经过测试时兼容的。

请下载Non Thread Safe版本:
img

2 环境安装和配置

2.1 MySQL

本文使用的数据库MySQL 8.0,这里假设你已经安装并已经配置好了数据库。其他数据请另行安装测试。

2.2 PHP安装配置

  • VC++运行库

PHP运行依赖Microsoft Visual C++ Redistributable for Visual Studio,请检查并下载安装对应版本的vc++。

  • PHP安装

解压PHP包到电脑的某个目录下如:D:\Program Files\php-8.3.11。把该目录添加到系统环境变量PATH中。

  • PHP配置
  1. PHP目录里面的php.ini-production.ini重命名为php.ini
  2. post_max_sizeupload_max_filesize设置为20M,不然默认只能上传2M的附件。
  3. 修改php.ini文件,把extension_dir设置为PHP的ext目录,如:extension_dir = "D:\Program Files\php-8.3.11\ext"
  4. 设置时区为Asia/Shanghai,如:date.timezone = Asia/Shanghai
  5. 启用必须的扩展。
extension = php_curl.dll
extension = php_fileinfo.dll
extension = php_gd2.dll
extension = php_gmp.dll
extension = php_ldap.dll
extension = php_mbstring.dll
extension = php_exif.dll
extension = php_mysql.dll
extension = php_mysqli.dll
extension = php_openssl.dll
extension = php_soap.dll
extension = php_sockets.dll
extension = php_tidy.dll
extension = php_xmlrpc.dll
extension = php_xsl.dll
  1. CGI配置。
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo = 1
cgi.force_redirect = 0

完整php.ini文件如下:

; ext dir
extension_dir = "D:\Program Files\php-8.3.11\ext"
; time zone
date.timezone = Asia/Shanghai
; enable extensions
extension = php_curl.dll
extension = php_fileinfo.dll
extension = php_gd2.dll
extension = php_gmp.dll
extension = php_ldap.dll
extension = php_mbstring.dll
extension = php_exif.dll
extension = php_mysql.dll
extension = php_mysqli.dll
extension = php_openssl.dll
extension = php_soap.dll
extension = php_sockets.dll
extension = php_tidy.dll
extension = php_xmlrpc.dll
extension = php_xsl.dll
; cgi config
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
  • IIS安装
    需要打开CGI功能才能在IIS上启用PHP。

Control Panel -> Programs -> Turn Windows features on or off -> Internet Information Services -> World Wide Web Services -> Application Development Features

img

3 MantisBT安装和配置

3.2 IIS配置

  • 创建应用池

Application Pools -> Create Application Pool

因为PHP是非托管的,所以.NET CLR Version选择“No Managed Code”。

img

  • 添加网站

Sites -> Add Website

设置Pysical path为C:\inetpub\wwwroot\mantisbt,如果端口有冲突就换一个。

img

  • 设置应用池

点击刚刚创建的网站 -> Actions(右边面板) -> Basic Settings -> Application Pool -> 选择你前面创建的应用池。

img

  • 设置默认文档

点击刚刚创建的网站 -> Default Document(中间面板)-> Add -> index.php

img

  • 设置PHP文件处理映射

点击刚刚创建的网站 -> Handler Mappings(中间面板) -> Add Module Mapping -> 填入如下信息:

img

3.3 MantisBT配置

把MantisBT解压到C:\inetpub\wwwroot\mantisbt目录下。到这里如果没有意外的话,MantisBT应该已经安装好了。接下来开始MantisBT的配置。

点击刚刚创建的网站 -> Browse Website(右边面板) -> Browse *:80 (http)

如果打开网页显示404或其他权限类的错误,请检查一下MantisBT的安装目录的权限。

点击刚刚创建的网站 -> Actions(右边面板) -> Edit Permissions -> 给用户IUSR和用户组IIS_IUSRS添加读写权限。

如果确认权限没有问题,但还有报错请的话,请检查是否前面步骤有遗漏。如果能正常打开MantisBT安装配置页面,则根据提示配置数据连接信息、时区和URL的绑定,请注意这里的URL最好和IIS绑定的URL一致。

填好信息后点击Install/Upgrade Database按钮,如果看到的都是绿色的Good,则说明配置成功。滚动到底部,点击Continue按钮,进入登录页面。默认管理账户是administrator,密码是root,登录成功后根据要求修改密码。

  • 开启匿名访问

用管理员账户创建一个名字叫anonymous的用户,打开Protected,并给该用户分配Viewer权限。

打开配置文件config_inc.php,添加以下配置:

$g_allow_anonymous_login = ON;
$g_anonymous_account = 'anonymous';
$g_allow_blank_email = ON;

开启匿名访问后,不需要登录也可以匿名查看公开的Issue。对于公司内部或开源的项目是很方便的。

  • 设置最大附件大小
    打开配置文件config\config_inc.php,添加以下配置:
$g_max_file_size = 20971520;

把允许最大上传附件大小改为20M。

  • 自定义严重程度
    打开配置文件config\config_inc.php,添加以下配置:
$g_severity_enum_string = '10:feature,50:minor,60:major,70:crash,80:block';
#这个是默认的:
#$g_severity_enum_string = '10:feature,20:trivial,30:text,40:tweak,50:minor,60:major,70:crash,80:block';
 

默认的严重程度的选项很多,而且部分词并不常见,所以这里对严重程度做了优化,只保留了常用的几个。

  • LDAP配置
    打开配置文件config\config_inc.php,添加以下配置:
$g_login_method           = LDAP;
$g_ldap_server            = 'ldap://xxx.com:389';
$g_ldap_port              = '389';
$g_ldap_root_dn           = 'dc=xxx'; #你ldap的根DN
$g_ldap_bind_dn           = 'xxx'; #你ldap的绑定账号
$g_ldap_bind_passwd       = 'xxx'; #你ldap的绑定密码
$g_ldap_uid_field         = 'uid'; #你ldap的uid属性
$g_ldap_realname_field    = 'displayName'; #ldap可用的显示名子属性
$g_ldap_use_starttls      = OFF; #是否使用TLS
$g_use_ldap_email         = ON; #是否使用ldap的email
$g_use_ldap_realname      = ON; #是否使用ldap的realname

配置很简单,按要求逐个填入即可,更多的配置请参考官方文档。启用LDAP登录后,如果有LDAP的用户成功登录MantisBT会自动根据LDAP的信息注册该用户。另外,因为启用了LDAP原有的administrator就会自动失效,需要先用LDAP的账户登录,再手动把数据中的mantis_user_table的对于的用户的access_level字段设置为90,把该用户设置为管理员。

  • 配置邮件服务
    打开配置文件config\config_inc.php,添加以下配置:
$g_webmaster_email        = 'administrator@example.com'; #显示在每个页面的底部
$g_from_email             = 'noreply@example.com'; #发送邮件的地址
$g_return_path_email      = 'administrator@example.com'; #用于接收退回电子邮件的电子邮件地址。
$g_phpMailer_method       = PHPMAILER_METHOD_SMTP; #使用SMTP方法发送邮件
$g_smtp_host              = 'localhost'; #SMTP服务器地址
$g_smtp_username          = 'xxx@example.com'; #发邮件账户
$g_smtp_password          = 'xxx'; #账户密码
$g_smtp_connection_mode   = ''; #加密模式,ssl,tls
$g_smtp_port              = 25;  #SMTP端口
  • 显示名字而不是用户名
    打开配置文件config\config_inc.php,添加以下配置:
$g_show_realname = ON;

到这里MantisBT已经配置好了,可用添加项目和Issue试用这个新的Buger追踪系统了

4 后续问题更新

4.1 项目、版本和路线图

  1. 注意规划好项目的层级机构,以防日后项目多起来会感觉凌乱。
  2. 为项目创建好当前版本和下一个版本,并在创建Issue的时候指定产品版本和目标版本,这样才能看到项目的路线图。

4.2 反垃圾邮件

如果你频繁创建和更新项目可能会遇到下面的这个报错,这是触发了默认启动的反垃圾邮件机制,1个小时内只允许10个事件。

You have reached the allowed activity limit of 10 events within the last 3600 seconds; your action has been blocked to avoid spam, please try again later.

可用更新一下配置g_antispam_max_event_count,设置一个比较大的值或直接设置为0,0的意思是关闭这个放垃圾邮件功能。

$g_antispam_max_event_count = 50;

4.2 Due Date设置

默认不显示Iusse的Due Date,但是Due Date对Iusse跟踪和项目管理很重要,同时开发者也可以利用Due Date管理自己的工作。

  1. 跟新配置设置可以查看和更新Due Date的角色。
$g_due_date_update_threshold = DEVELOPER;
$g_due_date_view_threshold = VIEWER;
  1. 配置显示Due Date的页面。

Manage -> Configuration -> Manage Columns

在你要显示Due Date的页面加上due_date,显示位置跟随列表的顺序。

参考:

转载请注明出处:https://www.cnblogs.com/keitsi/p/18389110

posted @   keitsi  阅读(195)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示