【mantis】(转载)Apache 2.2.11 + PHP 5.2.9 + MySQL 5.1.34 + Mantis 1.1.7配置指南
原文地址:http://uh.9ria.com/space.php?uid=3875&do=blog&id=9591
Mantis配置指南(2009-04-27 20:16)
项目一直在使用mantis管理BUG,但是,版本过于陈旧:
使用的是: Apache 2.0.53 + PHP 4.3.10 + MySQL 4.0.23 + Mantis 0.19.2
由于服务器数据需要升级到MySQL 5.0.67,而4.*l和5.*有一些不兼容,导致,无法将旧的
Mantis的Mysql4.*库导入到MySQL 5.*中,索性,全面升级Mantis,重新配置。
新的配置是: Apache 2.2.11 + PHP 5.2.9 + MySQL 5.1.34 + Mantis 1.1.7
配置总体顺序如下
最近要搭建一个Bug跟踪管理系统,开源免费的Mantis自然首当其冲。要运行Mantis,有两种主流的环境配置:IIS+PHP+MySQL+Mantis和Apache+PHP+MySQL+Mantis,本文主要介绍后一种。
首先介绍如何在Apache上运行PHP:
一.安装Apache
首先下载Apache服务器的windows版本,网址为:http://httpd.apache.org/download.cgi,最新版本为Apache2.2,下载完后安装。
注意:检查80端口有没有被占用,本人安装时就由于打开IIS,导致apache无法启动。如果要查看80端口被哪个程序占用,可以在命令行窗口中输入netstat -o -an,找到占用该端口的程序的PID,然后在任务管理器中点"查看"->"选择列...",勾选"PID",找到该PID的程序,结束任务。 测试apache是否是否工作,安装后可以打开浏览器,输入http://localhost/验证Apache是否成功,如果成功则显示:It works 字样。
注:1.可自由选择安装路径2.如系统安装有360等监视软件,安装完apache后,会有提示框提示有启动项载入,允许此动作。
二.安装PHP
首先下载PHP,网址为:http://www.php.net/downloads.php,最新版本为PHP5.2.9,注意下载有两种版本:.zip版本 和 安装版。先执行安装版,安装中选择支持apache 2.2.x,那么会自动配置apache的http.conf文件、mime.types文件和产生PHP的php.ini文件。注意:在安装中我遇到过问题,如果选择默认安装,则很顺利没有错误,如果选择自定义安装且将所有的组件都选择安装,那么会发生错误,原因我现在也没搞清楚。
由于,安装版本内容不全,没有ext和pear等目录,所以,安装完后,将解压版解压到刚才的安装目录下。
注:可自由选择安装路径,因为后面有相应设置,所以最好目录不要太长
三.apache与PHP整合
安装版的PHP安装后,apache2.2的httpd.conf,会自动添加以下两行(如果没有要添加上):
PHPIniDir "G:/JCDevTool/PHP5/"
LoadModule php5_module "G:/JCDevTool/PHP5/php5apache2_2.dll"
mime.type文件自动增加如下两行:
application/x-httpd-php php
application/x-httpd-php-source phps
注意:1.G:/JCDevTool是PHP的安装目录,如果是apache2.2,必须写"php5apache2_2.dll"。
2.要重启apache刚才的配置才能生效(方法:点击右下角的apache图标—restart),否则下一步用hello.php验证时可能不正确。
PHP以apache模块的方式与Apache结合。是你的WEB网站具有支持PHP服务器脚本程序的能力。
四.测试是否配置成功
测试PHP是否加载成功:
编写一个PHP文件(hello.php):
<html>
<head>
<title>hello</title>
</head>
<body>
<?php echo "hello,php"; ?>
</body>
</html>
将该文件复制到C:\apache2.2\htdocs中,然后浏览器中输入http://localhost/hello.php,如果显示"hello,php",则表示加载成功。
五.接下来介绍如何安装MySQL:
这个比较简单,首先下载MySQL,网址为:http://dev.mysql.com/downloads/,最新的稳定版本为5.1.34,下载完后按照安装向导一步一步就可以完成安装了。
注: 1.如果想改变安装路径,选择custom项,如果按默认选择typical则自动安装在默认路径
2.安装mysql的路径中,不能含有中文!
3.mysql的默认超级用户是:root密码会在安装完进行配置中让你输入,也可不输入,默认为空
4.mysql安装过程中各选项设置及解释可参见http://blog.sina.com.cn/s/blog_4a4186e30100b7jf.html
5.如果一次安装不成功,卸载后,不会自动删除安装目录下的文件和数据文件,应自己手动删除方可重新安装否则会有影响
存在须删除文件的地方:1.你选定的安装目录或默认的安装目录2.你指定的数据文件存放目录3. C:\Documents and Settings\All Users\Application Data目录
6.如遇安装完配置最后一步启动服务失败,原因可能是以前装过没有卸载干净。可卸载重新安装来解决,也可取消配置,在cmd用命令“net start mysql”启动
7.关于mysql的cmd命令参见网上
六.最后介绍如何安装配置Mantis:
1.安装Mantis
首先下载Mantis,网址为:http://www.mantisbt.org/download.php,最新的稳定版本为Mantis1.1.4,下载完后解压到C:\mantis-1.1.4。可自由选择路径
2.配置Apache
也就是向Apache暴露Mantis的位置。修改%APACHE_HOME%\conf\httpd.conf,在文件末尾添加以下文字,以配置mantis目录的访问权限:
Alias /mantis "c:/mantis-1.1.4/"
<Directory "c:/mantis-1.1.4/">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
注意:这里特别注意,必须写成UNIX路径的/,不能写成Window路径的\,否则会无法正确显示mantis。
可选配置:如果希望在浏览器中直接输入目录名(即http://localhost/mantis)就可以访问Mantis主页(如果不添加,则每次都显示Mantis目录下的文件和子目录列表,又安全隐患),可以在dir_module标签中添加上index.php:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
这样就可以在浏览器中直接输入目录名了(当然,这时候访问还会出错,因为mantis数据库还没建立呢,不要急,我们一会马上去创建。)
3.配置PHP
因为我们需要使用基于PHP的应用程序Mantis,而Mantis本身的特性需要(如使用MySQL数据库等),就要求我们去修改php.ini文件:
(1)包含Pear库(Mantis中用到了Pear库)
查找include_path,改为include_path=".;C:\php5.2\PEAR",并去掉前面的分号
(2)包含外部PHP库(因为需要知道php_mysql.dll动态库的路径)
查找extension_dir,改为extension_dir="C:\php5.2\ext",并去掉前面的分号
(3)包含PHP-MySQL库(因为需要支持MYSQL)
查找php_mysql.dll,去掉前面的分号,这样PHP就能调用mysql模块了,如果没有就自己加进去extension_dir=php_mysql.dll
注:我就是没找到php_mysql.dll这一项,网上有说mantis解压到C:/program files (或者说非根目录下)目录下可能导致没有php_mysql.dll,看前辈们的文章好像是解压到了C:/,鉴于C盘空间,我解压到了D:/,仍然没有 php_mysql.dll,不过自己填上也可以正常使用。
4.为Mantis创建表、数据
访问http://localhost/mantis/admin/install.php,输入MySQL的用户名和密码,然后点击Install /Upgrade Database,就会自动建立Mantis所需要的数据库和所有数据表。(这 里注意,这是和以前的mantis比较大的不同,以前的mantis,如mantis-0.19.4.tar.gz版本,会提供一个 db_generate.sql数据库脚本来创建mantis需要的数据库,而新版mantis则通过install界面来自动创建。,还需要注意的是, 这里的内容多是从mantis/config_inc.php中获取,特别需要注意的是Hostname一栏,默认值为localhost,而如果 MySQL 安装时变动了端口(mysql的默认端口是3306,如果安装时变动了则按此说明修改),则应该写成 localhost:端口号,别忘同时修改config_inc.php文件)其他栏就按默认值即可,空白的可以不填,因为这些信息都来源于mantis 下的config_inc.php文件。(我安装时填写了admin username和admin password等,然后点击生成数据库和数据表时,最后一项有报错,不填的话就可以正常生成,当然如果想信息完整的话可已通过修改mantis下的 config_inc.php文件)
这里还要注意一个问题,有时创建时会失败,提示:【Checking PHP support for database type 】的错误:BAD database is not supported by PHP. Check that it has been compiled into your server.查看apache的log发现有如下错误:PHP Warning: PHP Startup: Unable to load dynamic library 'd:\\Program Files\\PHP\\ext\\php_mysql.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0 这是因为不能正确加载php_mysql.dll库,导致php与mysql不能连携,请检查环境变量中path是否有:【安装路径】\PHP和【安装路径】\PHP\ext 类似的配置。如果没有请将该路径添加到path中。特别再注意,添加后请务必重启OS,才能生效。
另外我第一次安装时,输入http://localhost/mantis/admin/install.php想要进行创建数据表和数据库,但是无法访问,提示没有访问权限,后来发现是安装mantis后配置Apache出了问题,mantis路径没写对。
5.启动Mantis
访问http://localhost/mantis/,出现登录界面,(注意,mantis的默认用户名为administrator,默认密码为root。)
七.邮件服务器配置
在Mantis中有新用户注册时,会给其指定的邮箱发一封邮件,点开邮件中的链接才可以设定密码,因此需要给Mantis添加发送邮件的功能。
使用phpmailer作为邮件服务器,首先下载phpmailer,网址为:http://phpmailer.codeworxtech.com/,下载完后解压到c:\phpmailer。可自由选择路径。
修改C:\mantis-1.1.4\config_inc.php,添加以下内容:
$g_smtp_host = 'smtp.sina.com.cn';//发送邮件服务器
$g_smtp_username = 'yawei.wu@unison.net.cn';//发送邮件账户的用户名(根据情况定要不要加后面的“@unison.net.cn”, romu ng ail = 'xinqian3qian3607我们公司的用户名是包含@后面的信息的,比如sina的邮箱的话就只需有用户名而不用加上“@sina.com”)
$g_smtp_password = '123456';//
$g_use_phpMailer = ON;
$g_phpMailer_path = 'c:/phpmailer/';
$g_phpMailer_method = 2;
$g_return_path_email = 'yawei.wu@unison.net.cn'
把其中的内容修改为你自己的邮箱信息就可以了,这个邮箱信息就是给用户发邮件的邮箱。赶紧新注册一个用户,试一试能不能收邮件吧~
八.关于安全方面的一些设置问题随后再续
九.配置文件上传
主要配置项:
$g_allow_file_upload = ON;
$g_file_upload_method = DISK;
注:
a) 在Mantis目录下新建目录如 upload ,再在mantis建立的项目中把文件上传路径设置为“upload”(通过Web方式)。这样上传的文件就会存放在upload目录中。(我也把 config_defaults_inc.php文件中的$g_absolute_path_default_upload_folder = 'D:/mantisbt-1.1.6/upload/设置上了路径,并且千万不能丢了最后的“/”.而且所有在config__inc.php文件中设置或添加的项在config_defaults_inc.php文件中一定要注释掉)
b) 上传文件的大小受到 Mantis 和 PHP 的双重限制,需要修改:
/webapps/mantis/config_inc.php 中 $g_max_file_size = 100000000; # 100 MB
/usr/local/lib/php.ini中upload_max_filesize = 100M 和 post_max_size = 100M
c) 给用于存储上传文件的目录增加可写权限。(方法:右键点图片保存的文件夹,选择"属性"->"安全",点"添加"->"高级"->"立即查找",在查找结果中选择"everyone"后点"确定",在点"确定",然后把"everyone"的"完全控制"钩上,最后点"确定")
十.附件浏览功能:
比如,在提交一个issue的时候,有时候会有截图提交附件情况,这是有人会提出来,我想直接看到错误截图而不想自己下载后再看,这也是需要设置就能实现的。但是这个功能只是针对bmp, png, gif, jpg格式的图片文件而言,当然提交的doc文件就不再之列了。处理得方法很简单,只需将config文件中de $g_preview_attachments_inline_max_size 进行设置。当将这个设置为0的情况,那么查看issue的时候是永远不会出现附件贴图的,但是如果你将这个设置为一个足够大的尺寸,那么就会在issue 里 直接出现图片,这个数值是以字节计算,如果图片上传为32,210字节,则你 把$g_preview_attachments_inline_max_size=32211,而且任何小于这个字节大小的bmp, png, gif, jpg格式的图片文件直接显示了,很简单吧.
可惜的是,我现在还未找出我原先的附件怎么就下载后都变1k了,可在issue页面中还是显示实际字节大小,解决方式寻找中......
十一.使用jgraphic(图形报表)
一种方法:安装JPGraph
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块。
1). 可以在http://www.aditus.nu/jpgraph/jpdownload.php下载最新版的JPGraph,请注意JPGraph 1.x 版本是针对php4,2.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” 和(“;extension=php_iconv.dll”)前面的分号删除,这个模块是JPGraph在显示图表和进行汉字编码转换是所必须的。
(3) JPGraph的中文显示
据说1.0以后的版本已经能够很好的支持报表中文显示,但可能PHP5的问题,我这里还是乱码,这里列出参考别人的方法我所做的配置。
1) 如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的。
JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFont,Mantis没有做这个操作,因此汉字显示出来都是乱码。
解决方法是增加对图形设置字体的代码;
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就不行了,
总会有部分人报表出现乱码。所以一个小组一定要统一阿。
很遗憾按以上方法配置后我的图形报表还是乱码,待解决中。。。
十二.默认的用户名密码
Mantis管理员账户:adminstrator 密码:root
Mysql账户:root 密码:root
完毕!!
心得:
由于是第一次配置,以前都是其他人负责,所以,重新配置时很多概念都没有,就看手顺来配置,感觉很混乱,所以,去补充了一些周边知识,了解了这些知识后,再来看上面看似很繁琐的手顺,其实就很容易理解了。
知识1:WAMP=windows+Apache+MySQL+PHP,是一个开 发网络应用程序的网络开发平台(全是开源软件),因为mantis就是PHP应用,即Mantis就是PHP脚本语言写出来的程序。所以,要使用 mantis,先搭建好mantis运行的环境是必须的步骤。
知识2:mantis是需要数据库来管理用户登陆的BUG的,所以,我们还需要使用MySQL,当然,不是必须使用MySQL(插一句:mantis是希望实现与具体数据库系统无关的更通用的bug管理系统。从现在的数据库创建方式就很明确了。)
知识3:所以,配置的思路就是,apache(http.conf)支持PHP,PHP(php.ini)支持MySQL,apache(http.conf)支持Mantis;Mantis创建MySQL数据库;使用mantis
使用过程中的问题:
通过http://服务器IP地址/mantis/访问,创建账号时有如下报错(但能成功创建):
APPLICATION ERROR #401
Database query failed. Error received from database was #1366: Incorrect string value: '\xE7\xBC\xBA\xE9\x99\xB7...' for column 'subject' at row 1 for the query: INSERT INTO mantis_email_table
( email,
subject,
body,
submitted,
metadata)
VALUES
'[Mantis] 缺陷跟踪系统帐号注册',
'已创建如下账号: \n\n用户名:mountain100 \n电子邮箱han.gao@unison.net.cn \nIP 地址:10.96.210.132
经查说是编码问题,建议导出数据库,全部转换成utf-8编码。也可以在dos环境下用命令修改各个表的编码,修改命令:ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
mantis提交附件相关问题
今天mantis出现了一个严重的错误,我还在修改和检查中,主要是之前提交的附件,现在都为空的了,而且不能正确打开和浏览。
1、数据转移功能:
在未作任何改动的情况下,系统是默认将附件保存到数据库,可是当想直接获得这些文件该怎么办呢?其实mantis系统提供这么一个功能,将放在数据库的附件文件转移到磁盘里。你只需访问:http://youserver/mantis/admin/system_utils.php,里面就会有一个按钮-Move attachment to Disk,点击他就ok了,当然必须确认你的config文件里,upload method是disk,否则也会出错的。这样数据库中的附件就会被导出来,放到mantis根目录下,你可以做一个数据保存工作了,实在是一个不错的功能。
posted on 2011-08-18 14:54 littlebamboo 阅读(714) 评论(0) 编辑 收藏 举报