默認分類(lèi) 2009-06-23 11:30:30 閱讀778 評論0 字號:大中小
Mantis配置指南(2009-04-27 20:16)
項目一直在使用mantis管理BUG,但是,版本過(guò)于陳舊:
使用的是: Apache 2.0.53 + PHP 4.3.10 + MySQL 4.0.23 + Mantis 0.19.2
由于服務(wù)器數據需要升級到MySQL 5.0.67,而4.*l和5.*有一些不兼容,導致,無(wú)法將舊的
Mantis的Mysql4.*庫導入到MySQL 5.*中,索性,全面升級Mantis,重新配置。
新的配置是: Apache 2.2.11 + PHP 5.2.9 + MySQL 5.1.34 + Mantis 1.1.7
配置總體順序如下
最近要搭建一個(gè)Bug跟蹤管理系統,開(kāi)源免費的Mantis自然首當其沖。要運行Mantis,有兩種主流的環(huán)境配置:IIS+PHP+MySQL+Mantis和Apache+PHP+MySQL+Mantis,本文主要介紹后一種。
首先介紹如何在A(yíng)pache上運行PHP:
一.安裝Apache
首先下載Apache服務(wù)器的windows版本,網(wǎng)址為:http://httpd.apache.org/download.cgi,最新版本為Apache2.2,下載完后安裝。
注意:檢查80端口有沒(méi)有被占用,本人安裝時(shí)就由于打開(kāi)IIS,導致apache無(wú)法啟動(dòng)。如果要查看80端口被哪個(gè)程序占用,可以在命令行窗口中輸入netstat -o -an,找到占用該端口的程序的PID,然后在任務(wù)管理器中點(diǎn)"查看"->"選擇列...",勾選"PID",找到該PID的程序,結束任務(wù)。 測試apache是否是否工作,安裝后可以打開(kāi)瀏覽器,輸入http://localhost/驗證Apache是否成功,如果成功則顯示:It works 字樣。
注:1.可自由選擇安裝路徑2.如系統安裝有360等監視軟件,安裝完apache后,會(huì )有提示框提示有啟動(dòng)項載入,允許此動(dòng)作。
二.安裝PHP
首先下載PHP,網(wǎng)址為:http://www.php.net/downloads.php,最新版本為PHP5.2.9,注意下載有兩種版本:.zip版本 和 安裝版。先執行安裝版,安裝中選擇支持apache 2.2.x,那么會(huì )自動(dòng)配置apache的http.conf文件、mime.types文件和產(chǎn)生PHP的php.ini文件。注意:在安裝中我遇到過(guò)問(wèn)題,如果選擇默認安裝,則很順利沒(méi)有錯誤,如果選擇自定義安裝且將所有的組件都選擇安裝,那么會(huì )發(fā)生錯誤,原因我現在也沒(méi)搞清楚。
由于,安裝版本內容不全,沒(méi)有ext和pear等目錄,所以,安裝完后,將解壓版解壓到剛才的安裝目錄下。
注:可自由選擇安裝路徑,因為后面有相應設置,所以最好目錄不要太長(cháng)
三.apache與PHP整合
安裝版的PHP安裝后,apache2.2的httpd.conf,會(huì )自動(dòng)添加以下兩行(如果沒(méi)有要添加上):
PHPIniDir "G:/JCDevTool/PHP5/"
LoadModule php5_module "G:/JCDevTool/PHP5/php5apache2_2.dll"
mime.type文件自動(dòng)增加如下兩行:
application/x-httpd-php php
application/x-httpd-php-source phps
注意:1.G:/JCDevTool是PHP的安裝目錄,如果是apache2.2,必須寫(xiě)"php5apache2_2.dll"。
2.要重啟apache剛才的配置才能生效(方法:點(diǎn)擊右下角的apache圖標—restart),否則下一步用hello.php驗證時(shí)可能不正確。
PHP以apache模塊的方式與Apache結合。是你的WEB網(wǎng)站具有支持PHP服務(wù)器腳本程序的能力。
四.測試是否配置成功
測試PHP是否加載成功:
編寫(xiě)一個(gè)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",則表示加載成功。
五.接下來(lái)介紹如何安裝MySQL:
這個(gè)比較簡(jiǎn)單,首先下載MySQL,網(wǎng)址為:http://dev.mysql.com/downloads/,最新的穩定版本為5.1.34,下載完后按照安裝向導一步一步就可以完成安裝了。
注: 1.如果想改變安裝路徑,選擇custom項,如果按默認選擇typical則自動(dòng)安裝在默認路徑
2.安裝mysql的路徑中,不能含有中文!
3.mysql的默認超級用戶(hù)是:root密碼會(huì )在安裝完進(jìn)行配置中讓你輸入,也可不輸入,默認為空
4.mysql安裝過(guò)程中各選項設置及解釋可參見(jiàn)http://blog.sina.com.cn/s/blog_4a4186e30100b7jf.html
5.如果一次安裝不成功,卸載后,不會(huì )自動(dòng)刪除安裝目錄下的文件和數據文件,應自己手動(dòng)刪除方可重新安裝否則會(huì )有影響
存在須刪除文件的地方:1.你選定的安裝目錄或默認的安裝目錄2.你指定的數據文件存放目錄3. C:\Documents and Settings\All Users\Application Da
6.如遇安裝完配置最后一步啟動(dòng)服務(wù)失敗,原因可能是以前裝過(guò)沒(méi)有卸載干凈??尚遁d重新安裝來(lái)解決,也可取消配置,在cmd用命令“net start mysql”啟動(dòng)
7.關(guān)于mysql的cmd命令參見(jiàn)網(wǎng)上
六.最后介紹如何安裝配置Mantis:
1.安裝Mantis
首先下載Mantis,網(wǎng)址為:http://www.mantisbt.org/download.php,最新的穩定版本為Mantis1.1.4,下載完后解壓到C:\mantis-1.1.4??勺杂蛇x擇路徑
2.配置Apache
也就是向Apache暴露Mantis的位置。修改%APACHE_HOME%\conf\httpd.conf,在文件末尾添加以下文字,以配置mantis目錄的訪(fǎng)問(wèn)權限:
Alias /mantis "c:/mantis-1.1.4/"
<Directory "c:/mantis-1.1.4/">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
注意:這里特別注意,必須寫(xiě)成UNIX路徑的/,不能寫(xiě)成Window路徑的\,否則會(huì )無(wú)法正確顯示mantis。
可選配置:如果希望在瀏覽器中直接輸入目錄名(即http://localhost/mantis)就可以訪(fǎng)問(wèn)Mantis主頁(yè)(如果不添加,則每次都顯示Mantis目錄下的文件和子目錄列表,又安全隱患),可以在dir_module標簽中添加上index.php:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
這樣就可以在瀏覽器中直接輸入目錄名了(當然,這時(shí)候訪(fǎng)問(wèn)還會(huì )出錯,因為mantis數據庫還沒(méi)建立呢,不要急,我們一會(huì )馬上去創(chuàng )建。)
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動(dòng)態(tài)庫的路徑)
查找extension_dir,改為extension_dir="C:\php5.2\ext",并去掉前面的分號
(3)包含PHP-MySQL庫(因為需要支持MYSQL)
查找php_mysql.dll,去掉前面的分號,這樣PHP就能調用mysql模塊了,如果沒(méi)有就自己加進(jìn)去extension_dir=php_mysql.dll
注:我就是沒(méi)找到php_mysql.dll這一項,網(wǎng)上有說(shuō)mantis解壓到C:/program files (或者說(shuō)非根目錄下)目錄下可能導致沒(méi)有php_mysql.dll,看前輩們的文章好像是解壓到了C:/,鑒于C盤(pán)空間,我解壓到了D:/,仍然沒(méi)有php_mysql.dll,不過(guò)自己填上也可以正常使用。
4.為Mantis創(chuàng )建表、數據
訪(fǎng)問(wèn)http://localhost/mantis/admin/install.php,輸入MySQL的用戶(hù)名和密碼,然后點(diǎn)擊Install/Upgrade Database,就會(huì )自動(dòng)建立Mantis所需要的數據庫和所有數據表。(這 里注意,這是和以前的mantis比較大的不同,以前的mantis,如mantis-0.19.4.tar.gz版本,會(huì )提供一個(gè) db_generate.sql數據庫腳本來(lái)創(chuàng )建mantis需要的數據庫,而新版mantis則通過(guò)install界面來(lái)自動(dòng)創(chuàng )建。,還需要注意的是, 這里的內容多是從mantis/config_inc.php中獲取,特別需要注意的是Hostname一欄,默認值為localhost,而如果MySQL 安裝時(shí)變動(dòng)了端口(mysql的默認端口是3306,如果安裝時(shí)變動(dòng)了則按此說(shuō)明修改),則應該寫(xiě)成 localhost:端口號,別忘同時(shí)修改config_inc.php文件)其他欄就按默認值即可,空白的可以不填,因為這些信息都來(lái)源于mantis下的config_inc.php文件。(我安裝時(shí)填寫(xiě)了admin username和admin password等,然后點(diǎn)擊生成數據庫和數據表時(shí),最后一項有報錯,不填的話(huà)就可以正常生成,當然如果想信息完整的話(huà)可已通過(guò)修改mantis下的config_inc.php文件)
這里還要注意一個(gè)問(wèn)題,有時(shí)創(chuàng )建時(shí)會(huì )失敗,提示:【Checking PHP support for database type 】的錯誤:BAD database is not supported by PHP. Check that it has been compiled into your server.查看apache的log發(fā)現有如下錯誤: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不能連攜,請檢查環(huán)境變量中path是否有:【安裝路徑】\PHP和【安裝路徑】\PHP\ext 類(lèi)似的配置。如果沒(méi)有請將該路徑添加到path中。特別再注意,添加后請務(wù)必重啟OS,才能生效。
另外我第一次安裝時(shí),輸入http://localhost/mantis/admin/install.php想要進(jìn)行創(chuàng )建數據表和數據庫,但是無(wú)法訪(fǎng)問(wèn),提示沒(méi)有訪(fǎng)問(wèn)權限,后來(lái)發(fā)現是安裝mantis后配置Apache出了問(wèn)題,mantis路徑?jīng)]寫(xiě)對。
5.啟動(dòng)Mantis
訪(fǎng)問(wèn)http://localhost/mantis/,出現登錄界面,(注意,mantis的默認用戶(hù)名為administrator,默認密碼為root。)
七.郵件服務(wù)器配置
在Mantis中有新用戶(hù)注冊時(shí),會(huì )給其指定的郵箱發(fā)一封郵件,點(diǎn)開(kāi)郵件中的鏈接才可以設定密碼,因此需要給Mantis添加發(fā)送郵件的功能。
使用phpmailer作為郵件服務(wù)器,首先下載phpmailer,網(wǎng)址為:http://phpmailer.codeworxtech.com,下載完后解壓到c:\phpmailer??勺杂蛇x擇路徑。
修改C:\mantis-1.1.4\config_inc.php,添加以下內容:
$g_smtp_host = 'smtp.sina.com.cn';//發(fā)送郵件服務(wù)器
$g_smtp_username = 'yawei.wu@unison.net.cn';//發(fā)送郵件賬戶(hù)的用戶(hù)名(根據情況定要不要加后面的“@unison.net.cn”, romu ng ail = 'xinqian3qian3607我們公司的用戶(hù)名是包含@后面的信息的,比如sina的郵箱的話(huà)就只需有用戶(hù)名而不用加上“@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è)郵箱信息就是給用戶(hù)發(fā)郵件的郵箱。趕緊新注冊一個(gè)用戶(hù),試一試能不能收郵件吧~
八.關(guān)于安全方面的一些設置問(wèn)題隨后再續
九.配置文件上傳
主要配置項:
$g_allow_file_upload = ON;
$g_file_upload_method = DISK;
注:
a) 在Mantis目錄下新建目錄如 upload ,再在mantis建立的項目中把文件上傳路徑設置為“upload”(通過(guò)Web方式)。這樣上傳的文件就會(huì )存放在upload目錄中。(我也把config_defaults_inc.php文件中的$g_absolute_path_default_upload_folder = 'D:/mantisbt-1.1.6/upload/設置上了路徑,并且千萬(wàn)不能丟了最后的“/”.而且所有在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) 給用于存儲上傳文件的目錄增加可寫(xiě)權限。(方法:右鍵點(diǎn)圖片保存的文件夾,選擇"屬性"->"安全",點(diǎn)"添加"->"高級"->"立即查找",在查找結果中選擇"everyone"后點(diǎn)"確定",在點(diǎn)"確定",然后把"everyone"的"完全控制"鉤上,最后點(diǎn)"確定")
十.附件瀏覽功能:
比如,在提交一個(gè)issue的時(shí)候,有時(shí)候會(huì )有截圖提交附件情況,這是有人會(huì )提出來(lái),我想直接看到錯誤截圖而不想自己下載后再看,這也是需要設置就能實(shí)現的。但是這個(gè)功能只是針對bmp, png, gif, jpg格式的圖片文件而言,當然提交的doc文件就不再之列了。處理得方法很簡(jiǎn)單,只需將config文件中de $g_preview_attachments_inline_max_size 進(jìn)行設置。當將這個(gè)設置為0的情況,那么查看issue的時(shí)候是永遠不會(huì )出現附件貼圖的,但是如果你將這個(gè)設置為一個(gè)足夠大的尺寸,那么就會(huì )在issue里 直接出現圖片,這個(gè)數值是以字節計算,如果圖片上傳為32,210字節,則你 把$g_preview_attachments_inline_max_size=32211,而且任何小于這個(gè)字節大小的bmp, png, gif, jpg格式的圖片文件直接顯示了,很簡(jiǎn)單吧.
可惜的是,我現在還未找出我原先的附件怎么就下載后都變1k了,可在issue頁(yè)面中還是顯示實(shí)際字節大小,解決方式尋找中......
十一.使用jgraphic(圖形報表)
一種方法:安裝JPGraph
默認情況下,Mantis的圖形報表是關(guān)閉的,需要安裝JPGraph模塊。
1). 可以在http://www.aditus.nu/jpgraph/jpdownload.php下載最新版的JPGraph,請注意JPGraph 1.x 版本是針對php4,2.x 是針對php5的,請下載對應版本。
2). 將下載包解壓到一個(gè)目錄下,我解壓到mantis下的jpgraph目錄,定義為$JPGraph。
3). 然后在config_inc.php中添加下面幾行:
$g_use_jpgraph = ON;
$g_jpgraph_path = './jpgraph/src/'; //你也可以按照你的地址填寫(xiě)文件的絕對路徑。
4). 在php.ini將“;extension=php_gd2.dll” 和(“;extension=php_iconv.dll”)前面的分號刪除,這個(gè)模塊是JPGraph在顯示圖表和進(jìn)行漢字編碼轉換是所必須的。
(3) JPGraph的中文顯示
據說(shuō)1.0以后的版本已經(jīng)能夠很好的支持報表中文顯示,但可能PHP5的問(wèn)題,我這里還是亂碼,這里列出參考別人的方法我所做的配置。
1) 如果你的界面語(yǔ)言是用簡(jiǎn)體中文或者繁體中文,那么你會(huì )看到圖形中的漢字都是亂碼,這是因為Mantis對于JPGraph的編碼設置不正確造成的。
JPGraph會(huì )自動(dòng)將漢字轉換為UTF-8編碼,但是需要在調用JPGraph的時(shí)候對標題等SetFont,Mantis沒(méi)有做這個(gè)操作,因此漢字顯示出來(lái)都是亂碼。
解決方法是增加對圖形設置字體的代碼;
2) 打開(kāi)$mantis\core\graph_api.php,查找:graph_get_font(),在其中添加一行
'chinese_gbk' => FF_SIMSUN,
3) 在config_inc.php文件中添加
$g_graph_font = 'chinese_gbk';
4) 打開(kāi)$JPGraph\src\jpg-config.inc.php
查找 DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');
改為 DEFINE('CHINESE_TTF_FONT','simsun.ttc');
jpg-config.inc.php也可以不改,如果生成的圖形中的字體想由自己定義,可以這樣改。
這個(gè)時(shí)候,如果你選擇的語(yǔ)言是chinese_simplified,現在你的圖形報表應該就可以顯示中文了。
5) 但如果你選擇語(yǔ)言跟我一樣是chinese_simplified_utf8,則發(fā)現報表顯示還是亂碼。
原來(lái)JPGraph中處理的時(shí)候比較bt,只要看到字體設置是FF_SIMSUN,就認為字符串編碼是GB2312,輸出的時(shí)候都要轉成UTF8,
單實(shí)際上已經(jīng)是UTF8了,根本不用轉。
直接修改代碼:
打開(kāi)JPGraph下的jpgraph.php文件,搜索其中:
elseif( $aFF === FF_SIMSUN ) {
// Do Chinese conversion
if( $this->g2312 == null ) {
include_on
$this->g2312 = new GB2312toUTF8();
}
return $this->g2312->gb2utf8($aTxt);
}
改為:
elseif( $aFF === FF_SIMSUN ) {
// Do Chinese conversion
/*
if( $this->g2312 == null ) {
include_on
$this->g2312 = new GB2312toUTF8();
}
return $this->g2312->gb2utf8($aTxt);
*/
return $aTxt;
}
就是把轉換編碼的代碼注釋掉,最好不要直接刪掉了,不然以后想改回來(lái)就麻煩了。
這樣改實(shí)際是有些問(wèn)題,如果mantis中有部分用戶(hù)的語(yǔ)言選擇為chinese_simplified,另一部分選擇為chinese_simplified_utf8就不行了,
總會(huì )有部分人報表出現亂碼。所以一個(gè)小組一定要統一阿。
很遺憾按以上方法配置后我的圖形報表還是亂碼,待解決中。。。
十二.默認的用戶(hù)名密碼
Mantis管理員賬戶(hù):adminstrator 密碼:root
Mysql賬戶(hù):root 密碼:root
完畢??!
心得:
由于是第一次配置,以前都是其他人負責,所以,重新配置時(shí)很多概念都沒(méi)有,就看手順來(lái)配置,感覺(jué)很混亂,所以,去補充了一些周邊知識,了解了這些知識后,再來(lái)看上面看似很繁瑣的手順,其實(shí)就很容易理解了。
知識1:WAMP=windows+Apache+MySQL+PHP,是一個(gè)開(kāi) 發(fā)網(wǎng)絡(luò )應用程序的網(wǎng)絡(luò )開(kāi)發(fā)平臺(全是開(kāi)源軟件),因為mantis就是PHP應用,即Mantis就是PHP腳本語(yǔ)言寫(xiě)出來(lái)的程序。所以,要使用 mantis,先搭建好mantis運行的環(huán)境是必須的步驟。
知識2:mantis是需要數據庫來(lái)管理用戶(hù)登陸的BUG的,所以,我們還需要使用MySQL,當然,不是必須使用MySQL(插一句:mantis是希望實(shí)現與具體數據庫系統無(wú)關(guān)的更通用的bug管理系統。從現在的數據庫創(chuàng )建方式就很明確了。)
知識3:所以,配置的思路就是,apache(http.conf)支持PHP,PHP(php.ini)支持MySQL,apache(http.conf)支持Mantis;Mantis創(chuàng )建MySQL數據庫;使用mantis
使用過(guò)程中的問(wèn)題:
通過(guò)http://服務(wù)器IP地址/mantis/訪(fǎng)問(wèn),創(chuàng )建賬號時(shí)有如下報錯(但能成功創(chuàng )建):
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
( 'wuyawei1985@sina.com',
'[Mantis] 缺陷跟蹤系統賬號注冊',
'已創(chuàng )建如下賬號: \n\n用戶(hù)名:mountain100 \n電子郵箱han.gao@unison.net.cn \nIP 地址:10.96.210.132
經(jīng)查說(shuō)是編碼問(wèn)題,建議導出數據庫,全部轉換成utf-8編碼。也可以在dos環(huán)境下用命令修改各個(gè)表的編碼,修改命令:ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
今天mantis出現了一個(gè)嚴重的錯誤,我還在修改和檢查中,主要是之前提交的附件,現在都為空的了,而且不能正確打開(kāi)和瀏覽。
1、數據轉移功能:
在未作任何改動(dòng)的情況下,系統是默認將附件保存到數據庫,可是當想直接獲得這些文件該怎么辦呢?其實(shí)mantis系統提供這么一個(gè)功能,將放在數據庫的附件文件轉移到磁盤(pán)里。你只需訪(fǎng)問(wèn):http://youserver/mantis/admin/system_utils.php,里面就會(huì )有一個(gè)按鈕-Move attachment to Disk,點(diǎn)擊他就ok了,當然必須確認你的config文件里,upload method是disk,否則也會(huì )出錯的。這樣數據庫中的附件就會(huì )被導出來(lái),放到mantis根目錄下,你可以做一個(gè)數據保存工作了,實(shí)在是一個(gè)不錯的功能。
聯(lián)系客服