终于把Mantis安装好了
非常感谢这位仁兄的大作,使我可以顺利的安装成功。http://www.cnblogs.com/NetCobra/articles/5773.html
不过我在安装过程中,也有一些小的地方不太一致的地方,大概还是因为版本的不同导致的,所以在上面那位仁兄的基础上,我做了一些修改,供自己参考,因为对原文有了一些修改,如果有不妥之处请告知,我会尽快修改或删除。
Bug 跟踪管理系统 Mantis 在 IIS5 下安装指南 v1.1
v1.1:修改部分错误;
修改JPGraph和PHPMailer设置部分路径误为C:\PHP\C:\PHP\...的错误;
JPGraph设置部分增加对PHP.INI中extension_dir的修改;
v1.0:完成于2004-03-18;
这是我写的一篇 Mantis 在 Windows IIS 下的安装指南,如果对你有帮助我会很高兴。
转载请注明出处。
和BugZilla一样,Mantis也是一个开源的Bug管理系统;基于PHP+MySQL,可以运行在Windows/xnix平台上;它的主页是http://www.mantisbt.org/
和BugZilla不一样的是,Mantis是轻量级的,在功能上相对比较少一些(特别是报表模块),不过对于小型的开发团队是完全够用了。
对于我来说,Mantis是完全够用了,而且最重要的一点是:Mantis直接提供对Windows平台的支持
Mantis是螳螂的意思,我想给Mantis起这个名字的人一定是希望这只螳螂能够把我们系统中的Bug统统吃掉吧:-D?
说明:
由于我使用的是IIS,因此我下面的安装说明全部都是在IIS上进行的;
开始安装Mantis。
需要作的准备工作:
1.从http://www.mysql.com/downloads/index.html下载MySQL安装文件,请下载Windows安装文件,当前有多个版本可供下载,出于稳定起见,建议下载推荐的Production release (recommended),mysql-4.0.25-win32.zip 同时可以下载MySQL Control Center,一个免费的MySQL图形管理界面程序 mysqlcc-0.9.4-win32.zip;
2.从http://www.php.net/downloads.php下载PHP安装文件,目前最高版本4.4.0,请下载Windows安装文件;其中“PHP 4.4.0 installer”EXE包可以自动进行设置,但是比ZIP包缺少一些模块,如果需要使用图形报表功能,建议下载“PHP 4.4.0 zip package”ZIP包,因为图形报表需要使用到包括在ZIP报中的PHP扩展模块,不过ZIP需要自己手工设置;
提示:对于象我这样的懒人,你可以这样做:两个都下载,先安装EXE包自动完成设置工作,然后将ZIP包解压缩到PHP安装目录,覆盖原文件,然后手工修改PHP.ini配置文件,让PHP载入扩展模块,就可以得到一个完整的PHP安装包了*^_^*;
3.从http://www.mantisbt.org/download.php下载Mantis安装文件,目前最高版本是mantis-1.0.0rc1.tar.gz;
4.(可选项)如果希望使用Mantis的PHPMailer发信功能和图形报表功能,则还需要PHP的PHPMailer模块和JPGraph模块,请分别到http://phpmailer.sourceforge.net/和http://www.aditus.nu/jpgraph/index.php下载,最新版本分别是1.73和1.14;
准备就绪,下面就可以开始安装了;
1.安装MySQL,建立数据库;
MySQL的安装很简单,解压缩下载得到的ZIP包,运行其中的setup.exe文件,然后就可以用“Next”大法轻松安装;这里假设你的MySQL安装在C:\MySQL下;
安装后运行C:\mysql\bin\下的winmysqladmin.exe文件,如果在系统任务栏显示绿灯,表示你的MySQL服务已经启动了;
1)修改MySQL默认的root用户密码:
在命令行下进入c:\mysql\bin,运行如下命令:
C:\>cd mysql
C:\mysql>cd bin
C:\mysql\bin>mysql -u root mysql
mysql>UPDATE user SET Password=PASSWORD('<new_root_password>' ) WHERE user='root';
mysql>FLUSH PRIVILEGES;
说明:请将< new_ root_password>改为你设定的root用户的新密码。更改密码后,要用root用户访问mysql,必须使用mysql -u root -p,按提示输入入正确的root新密码。
2)创建mantis数据库:
注意:进行这一步以前,需要先把你的Mantis安装包解压缩,因为创建数据库需要用到其中的建表SQL文件。db_generate.sql文件有可能需要到网上下载 http://www.mantisbt.org/database.php
mysql>create database mantis;
mysql>connect mantis;
mysql>source <mantis_path>\sql\db_generate.sql
说明:请将<mantis_path>改为你解压缩Mantis安装包的路径;
3)创建mantis用户,并赋给对Mantis数据库的相应权限:
mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, REFERENCES, LOCK TABLES, CREATE TEMPORARY TABLES ON mantis.* TO mantis@localhost IDENTIFIED BY '<mantis_password>';
mysql>FLUSH PRIVILEGES;
也可以给一个比较大的权限
mysql>GRANT ALL PRIVILEGES ON mantis.* TO mantis@"%" IDENTIFIED BY "mantis" ;
说明:请将<mantis_password>改为你设定的mantis用户的密码;这个密码在下面的操作中要写到Mantis的配置文件中;
4)完成MySQL初始化工作,退出
mysql>exit
上面的数据库操作也可以直接在mysqlcc图形界面中完成。
2.安装PHP
我的安装方法就是上面说的懒人安装方法*^_^*,好像就没有什么特别操作了;在使用图表和PHPMail时需要修改PHP.ini,这些修改我会在后面讲到。
3.设置Mantis
1)配置IIS6,我的机器是2003+IIS6,在WEB 扩展里面增加PHP ext,设置为c:\php\php.exe,打开IIS管理器,在默认网站中增加一个虚拟目录Mantis,指向你的Mantis解压缩目录(这里使用D:\WebSite\Mantis),在“属性”窗口的“文档”页面增加默认文档“index.php”,最好加上 "login.php"
isapi筛选器 不配置
主目录 执行权限 为纯脚本
配置 映射 .php c:\php\php.exe
2)将D:\WebSite\Mantis中的config_inc.php.sample复制一份,改名为config_inc.php,修改其中的设置;
Mantis的设置是这样保存的:在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,这里对每个参数都有详细的解释,虽然是E文,不过应该都能看懂;Sample中给出的一些设置是一定需要修改的,比如MySQL数据库的连接参数,管理员的邮箱的;其他的要根据你的实际情况进行修改。
下面是我的一些自定义参数,其中一些参数($g_use_jpgraph 和$g_use_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; # 使用图形报表
$g_jpgraph_path = 'C:/PHP/includes/JPGraph/src/'; # JPGraph路径
$g_window_title = 'Mantis Bug 跟踪管理系统'; # 浏览器标题
$g_page_title = 'Mantis Bug 跟踪管理系统'; # 页面标题栏
$g_enable_email_notification = ON; # 开通邮件通知
$g_smtp_host = 'smtp.mail.net'; # SMTP 服务器
$g_smtp_username = 'test@mantis.com'; # 邮箱登录用户名
$g_smtp_password = 'pass'; # 邮箱登录密码
$g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件
$g_phpMailer_path = 'C:/PHP/includes/PHPMailer/'; # PHPMailer 的存放路径
$g_phpMailer_method = 2; # PHPMailer 以 SMTP 方式发送 Email $g_file_upload_ftp_server = 'ftp.yourftp.com'; # 上传文件 FTP
$g_file_upload_ftp_user = 'ftpuser'; # FTP 登录用户名
$g_file_upload_ftp_pass = 'ftppwd'; # FTP 登录密码
$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了,打开IE,输入http://localhost/mantis,应该就可以看到Mantis的登录页面了,你可以用默认用户名administrator和密码root登录进去,进行管理设置。
4.Mantis的初步安全设置
1)在Mantis目录下有一个admin目录,如果你在IE中打开这个目录下的index.php查看,你就会知道这个目录是进行Mantis Administration的,使用这个模块可以检查你的Mantis是否安装完全,对旧版本的Mantis进行升级,对Mantis的页面CSS文件进行修改;使用这个管理模块是不需要用户名和密码的,因此任何人都可以通过这个管理模块查看你的Mantis系统信息,而且由于有升级模块,在这里还可以直接对数据库进行修改;因此如果被未授权的人打开,结果会是什么样不用我多说;最好因此按照系统的建议,在配置完成后将这个admin目录删除;注意一定是删除而不是改名!改名后仍然是可以访问的!
2)在添加一个管理员用户后,删除系统默认的administrator用户。
5.PHPMail的设置
默认情况下,Mantis使用内置的Mailto()函数进行邮件的发送,包括新用户注册发送密码、Bug改变提醒、重设密码等邮件的发送都使用MailTo()来完成,不过实际使用中发现,MailTo函数好像不支持需要校验的邮件服务器,比如我的263邮箱每次都提示需要校验,所以我给PHP安装了PHPMail模块,设置Mantis使用PHPMailer发送邮件。
1)下载PHPMailer:从http://phpmailer.sourceforge.net/下载,最新版本是1.71;
2)安装PHPMailer:将下载下来的phpmailer-1.71.zip解压缩到C:\PHP\includes \PHPMailer目录下;
3)修改Windows目录下的PHP.ini,找到include_path,增加C:\PHP\includes\PHPMailer目录;
4)如上表所示,设置$g_use_phpMailer、$g_phpMailer_path和$g_phpMailer_method三个参数;
5)现在应该就可以使用PHPMailer进行邮件发送了;
6.图形报表的设置
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块并设置$g_use_jpgraph为ON才能打开图形报表;
1)下载JPGraph:从http://www.aditus.nu/jpgraph/index.php下载JPGraph的安装文件,目前最高版本是1.14;
2)将下载下来的jpgraph-1.14.tar.gz解压缩到C:\PHP\includes目录下;
3)打开config_inc.php文件,修改$g_jpgraph_path为JPGraph的src目录,$g_use_jpgraph为ON;
4)修改Windows目录下的PHP.ini文件,将“;extension=php_gd2.dll”和“;extension=php_iconv.dll”两行前面的分号删除;
我的环境下 “;extension=php_iconv.dll 如果去掉分号就不对了,无论如何设置都提示找不到
另外如果extension_dir项不正确,请把extension_dir改为正确的值(应该是extension_dir = "./extensions/",
我这里不知道为什么是extension_dir = "./",大概就是因为使用懒人安装方法的缘故吧);
5)将C:\PHP\dlls下面的iconv.dll复制到Windows\System32目录下,以上两个步骤使PHP自动载入php_gd2和php_iconv.dll模块,这两个模块是JPGraph在显示图表和进行汉字编码转换是所必须的;
6)修改JPGraph的src目录下的jpgraph.php;将CACHE_DIR和TTF_DIR分别定义为Windows下的Temp目录和Fonts目录,如下所示
DEFINE("CACHE_DIR","E:/WinTemp/Temp/jpgraph_cache"); DEFINE("TTF_DIR","C:/WinNT/Fonts/");
7)现在再打开Mantis的统计页面,可以看到多了分别按状态等进行统计的图形报表,包括柱图、饼图和线图;
8)不过如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的,JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFont,Mantis没有做这个操作,因此汉字显示出来都是乱码,解决方法是在Mantis\core\graph_api.php中增加对图形标题等设置字体的代码;
方法一:
1. config_inc.php中增加$g_graph_font = 'simsun';
2. core/graph_api.php中函数function graph_get_font()中定义中文:'simsun' => FF_SIMSUN,'simhei' => FF_SIMHEI,就是那个$t_font_map数组中加上两行;
这样,缺省系统就会找simsun字体,就不需要每个图形函数里都找了。
方法二:
对于柱图和线图,要设置图形标题和x、y轴标题、节点标题:
//Set the title and axis font if the default_language is set to chinese
if (config_get('default_language') == 'chinese_simplified'){
$graph->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->xaxis->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->yaxis->SetFont(FF_SIMSUN,FS_NORMAL);
}
else if (config_get('default_language') == 'chinese_traditional'){
$graph->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->yaxis->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->xaxis->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->xaxis->SetFont(FF_CHINESE,FS_NORMAL);
$graph->yaxis->SetFont(FF_CHINESE,FS_NORMAL);
};
对于饼图,要设置图形标题和图例名称:
//Set the title and legend font if the default_language is set to chinese
if (config_get('default_language') == 'chinese_simplified'){
$graph->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL); }
else if (config_get('default_language') == 'chinese_traditional'){
$graph->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->legend->SetFont(FF_CHINESE,FS_NORMAL);
};
大家可以找到位置自己修改,简单的说就是在graph_api.php中每个“$graph->title->Set(…”后面根据当前的图表是柱图、线图还是饼图分别加上上面两段;
9)现在你的图形报表应该就可以显示中文了。
好了,Mantis的配置工作到此就结束了,现在你的Mantis功能应该是完全而且是安全的了,相对于BugZilla,Mantis的确很“轻量”,不过我的想法是够用就好,对于小团队,Mantis足够应付80%的日常Bug管理工作了。
常见问题:
1、不能启动MYSQL?
你可以在mysqld-max.exe、mysqld-max-nt.exe、mysqld-nt.exe、mysqld-opt.exe这几个文件试,本人推荐mysql-max-nt最为好用。
2、出现如下错误:
Security Alert! The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.
For more information as to why this behaviour exists, see the manual page for CGI security.
For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.
此错误就是将PHP安装为IIS的CGI方式就会出现的错误。
解决方法:修改php.ini将cgi.force_redirect设为0,然后重起IIS。
3、出现如下错误:
Server Application Error
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.
此错误就是将PHP安装为IIS的ISAPI方式就会出现的错误。
解决方法:同上,修改php.ini将cgi.force_redirect设为0,然后重起IIS。
当然出现这种情况还有未知的原因,一般重新启动一下就好了,因为将PHP安装为IIS的ISAPI方式还不是很稳定。
将所有dll文件copy 到你的system目录,如C:\WINNT\system32\下,注意哟,php.exe不是一个标准的可执行程序,所以你必须把那些DLL文件拷贝到system32
将php.ini-dist改名为php.ini
修改 extension_dir = ./
为 extension_dir = c:\winnt\system32\
修改 ;extension=php_mysql.dll (新的版本是'msql.dll' 吧)
除去前边的";"号
在[mysql]栏下修改
mysql.default_port = 3306
mysql.default_host = localhost
mysql.default_user = root
这三栏原始参数为空。
复制php.ini 到c:\WINNT 目录下
然后再次打开Control Panel,打开Administrative Tools 运行 Internet Services Manager 在Web服务上点鼠标右键,选Properties,如图一所示:
图一
然后在弹出的窗口中选ISAPI filter,如图二所示:
图二
增加一个以PHP为名字,包含php4isapi.dll的子键,如图三示:
图三
接着在Home Directory中选Configuration,增加一个应用映射。如图四,图五所示:不过要注意哟要用php4isapi.dll 而不是php.exe!
图四
图五所示
下面的就简单了,你只要重启一次iis服务就可以用PHP喽
=====================================
可是,总是出现500错误,如果是
Home Directory中选Configuration,增加一个应用映射,用的是php.exe。那么就会
出现:PHP Warning: Invalid library (maybe not a PHP library) 'msql.dll' in Unknown on line 0
到底是什么原因?
--------------------------------------------------------------------------------
新的版本mysql已经包含进去了,而不是你说的msql.dll,这是另一种数据库。
--------------------------------------------------------------------------------
看看的PHP.INI文件是不是写的有问题?
--------------------------------------------------------------------------------
给extension=msql.dll加上注释。还有以下错误
Security Alert! The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.
For more information as to why this behaviour exists, see the manual page for CGI security.
For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.
--------------------------------------------------------------------------------
PHP默认支持MYSQL