因工作需要,最近在研究开源的bug管理系统,其中比较流行的是Redmine和MantisBT。Redmine我们在几年前有使用过,一开始感觉整个流程和UI很简洁,而且还可以支持一定的定制化,感觉不错。但随着使用的用户和项目多起来就不太好管理,给人的感觉很凌乱。所以就搭建了一个MantisBT来评估,这篇文件记录了我在Windows下安装配置PHP和MantisBT的过程。
1 文件下载
注意一下版本的匹配,以下版本在我这里是经过测试时兼容的。
- 下载最新版本的MantisBT 2.26.3
- 下载Windows版本的PHP 8.3
请下载Non Thread Safe版本:
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配置
- PHP目录里面的php.ini-production.ini重命名为php.ini。
- 把post_max_size和upload_max_filesize设置为20M,不然默认只能上传2M的附件。
- 修改php.ini文件,把extension_dir设置为PHP的ext目录,如:extension_dir = "D:\Program Files\php-8.3.11\ext"。
- 设置时区为Asia/Shanghai,如:date.timezone = Asia/Shanghai。
- 启用必须的扩展。
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配置。
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
3 MantisBT安装和配置
3.2 IIS配置
- 创建应用池
Application Pools -> Create Application Pool
因为PHP是非托管的,所以.NET CLR Version选择“No Managed Code”。
- 添加网站
Sites -> Add Website
设置Pysical path为C:\inetpub\wwwroot\mantisbt,如果端口有冲突就换一个。
- 设置应用池
点击刚刚创建的网站 -> Actions(右边面板) -> Basic Settings -> Application Pool -> 选择你前面创建的应用池。
- 设置默认文档
点击刚刚创建的网站 -> Default Document(中间面板)-> Add -> index.php
- 设置PHP文件处理映射
点击刚刚创建的网站 -> Handler Mappings(中间面板) -> Add Module Mapping -> 填入如下信息:
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_inc.php,添加以下配置:
$g_max_file_size = 20971520;
把允许最大上传附件大小改为20M。
- 自定义严重程度
打开配置文件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_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_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_inc.php,添加以下配置:
$g_show_realname = ON;
配置完成后,重启IIS,到这里MantisBT已经配置好了。
参考:
- MantisBT官方的安装文档
- Windows PHP和IIS安装配置
转载请注明出处:https://www.cnblogs.com/keitsi/p/18389110