Apache 2.2.11 + PHP 5.2.9 + MySQL 5.1.34 + Mantis 1.1.7配置指南(2009-04-27 20:16)默認分類 2009-06-23 11:30:30 閱讀778 評論0 字號:大中小
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跟蹤管理系統(tǒng),開源免費的Mantis自然首當其沖。要運行Mantis,有兩種主流的環(huán)境配置:IIS+PHP+MySQL+Mantis和Apache+PHP+MySQL+Mantis,本文主要介紹后一種。 首先介紹如何在Apache上運行PHP: 一.安裝Apache 首先下載Apache服務器的windows版本,網址為:http://httpd./download.cgi,最新版本為Apache2.2,下載完后安裝。 注意:檢查80端口有沒有被占用,本人安裝時就由于打開IIS,導致apache無法啟動。如果要查看80端口被哪個程序占用,可以在命令行窗口中輸入netstat -o -an,找到占用該端口的程序的PID,然后在任務管理器中點"查看"->"選擇列...",勾選"PID",找到該PID的程序,結束任務。 測試apache是否是否工作,安裝后可以打開瀏覽器,輸入http://localhost/驗證Apache是否成功,如果成功則顯示:It works 字樣。 注:1.可自由選擇安裝路徑2.如系統(tǒng)安裝有360等監(jiān)視軟件,安裝完apache后,會有提示框提示有啟動項載入,允許此動作。 二.安裝PHP 首先下載PHP,網址為:http://www./downloads.php,最新版本為PHP5.2.9,注意下載有兩種版本:.zip版本 和 安裝版。先執(zhí)行安裝版,安裝中選擇支持apache 2.2.x,那么會自動配置apache的http.conf文件、mime.types文件和產生PHP的php.ini文件。注意:在安裝中我遇到過問題,如果選擇默認安裝,則很順利沒有錯誤,如果選擇自定義安裝且將所有的組件都選擇安裝,那么會發(fā)生錯誤,原因我現在也沒搞清楚。 由于,安裝版本內容不全,沒有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./downloads/,最新的穩(wěn)定版本為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 Da 6.如遇安裝完配置最后一步啟動服務失敗,原因可能是以前裝過沒有卸載干凈。可卸載重新安裝來解決,也可取消配置,在cmd用命令“net start mysql”啟動 7.關于mysql的cmd命令參見網上 六.最后介紹如何安裝配置Mantis: 1.安裝Mantis 首先下載Mantis,網址為:http://www./download.php,最新的穩(wěn)定版本為Mantis1.1.4,下載完后解壓到C:\mantis-1.1.4??勺杂蛇x擇路徑 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數據庫還沒建立呢,不要急,我們一會馬上去創(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動態(tài)庫的路徑) 查找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創(chuàng)建表、數據 訪問http://localhost/mantis/admin/install.php,輸入MySQL的用戶名和密碼,然后點擊Install/Upgrade Database,就會自動建立Mantis所需要的數據庫和所有數據表。(這 里注意,這是和以前的mantis比較大的不同,以前的mantis,如mantis-0.19.4.tar.gz版本,會提供一個 db_generate.sql數據庫腳本來創(chuàng)建mantis需要的數據庫,而新版mantis則通過install界面來自動創(chuàng)建。,還需要注意的是, 這里的內容多是從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文件) 這里還要注意一個問題,有時創(chuàng)建時會失敗,提示:【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 類似的配置。如果沒有請將該路徑添加到path中。特別再注意,添加后請務必重啟OS,才能生效。 另外我第一次安裝時,輸入http://localhost/mantis/admin/install.php想要進行創(chuàng)建數據表和數據庫,但是無法訪問,提示沒有訪問權限,后來發(fā)現是安裝mantis后配置Apache出了問題,mantis路徑沒寫對。 5.啟動Mantis 訪問http://localhost/mantis/,出現登錄界面,(注意,mantis的默認用戶名為administrator,默認密碼為root。) 七.郵件服務器配置 在Mantis中有新用戶注冊時,會給其指定的郵箱發(fā)一封郵件,點開郵件中的鏈接才可以設定密碼,因此需要給Mantis添加發(fā)送郵件的功能。 使用phpmailer作為郵件服務器,首先下載phpmailer,網址為:http://phpmailer.,下載完后解壓到c:\phpmailer??勺杂蛇x擇路徑。 修改C:\mantis-1.1.4\config_inc.php,添加以下內容: $g_smtp_host = 'smtp.sina.com.cn';//發(fā)送郵件服務器 $g_smtp_username = 'yawei.wu@unison.net.cn';//發(fā)送郵件賬戶的用戶名(根據情況定要不要加后面的“@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' 把其中的內容修改為你自己的郵箱信息就可以了,這個郵箱信息就是給用戶發(fā)郵件的郵箱。趕緊新注冊一個用戶,試一試能不能收郵件吧~ 八.關于安全方面的一些設置問題隨后再續(xù) 九.配置文件上傳 主要配置項: $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里 直接出現圖片,這個數值是以字節(jié)計算,如果圖片上傳為32,210字節(jié),則你 把$g_preview_attachments_inline_max_size=32211,而且任何小于這個字節(jié)大小的bmp, png, gif, jpg格式的圖片文件直接顯示了,很簡單吧. 可惜的是,我現在還未找出我原先的附件怎么就下載后都變1k了,可在issue頁面中還是顯示實際字節(jié)大小,解決方式尋找中...... 十一.使用jgraphic(圖形報表) 一種方法:安裝JPGraph 默認情況下,Mantis的圖形報表是關閉的,需要安裝JPGraph模塊。 1). 可以在http://www./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,則發(fā)現報表顯示還是亂碼。 原來JPGraph中處理的時候比較bt,只要看到字體設置是FF_SIMSUN,就認為字符串編碼是GB2312,輸出的時候都要轉成UTF8, 單實際上已經是UTF8了,根本不用轉。 直接修改代碼: 打開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; } 就是把轉換編碼的代碼注釋掉,最好不要直接刪掉了,不然以后想改回來就麻煩了。 這樣改實際是有些問題,如果mantis中有部分用戶的語言選擇為chinese_simplified,另一部分選擇為chinese_simplified_utf8就不行了, 總會有部分人報表出現亂碼。所以一個小組一定要統(tǒng)一阿。 很遺憾按以上方法配置后我的圖形報表還是亂碼,待解決中。。。 十二.默認的用戶名密碼 Mantis管理員賬戶:adminstrator 密碼:root Mysql賬戶:root 密碼:root 完畢??! 心得: 由于是第一次配置,以前都是其他人負責,所以,重新配置時很多概念都沒有,就看手順來配置,感覺很混亂,所以,去補充了一些周邊知識,了解了這些知識后,再來看上面看似很繁瑣的手順,其實就很容易理解了。 知識1:WAMP=windows+Apache+MySQL+PHP,是一個開 發(fā)網絡應用程序的網絡開發(fā)平臺(全是開源軟件),因為mantis就是PHP應用,即Mantis就是PHP腳本語言寫出來的程序。所以,要使用 mantis,先搭建好mantis運行的環(huán)境是必須的步驟。 知識2:mantis是需要數據庫來管理用戶登陸的BUG的,所以,我們還需要使用MySQL,當然,不是必須使用MySQL(插一句:mantis是希望實現與具體數據庫系統(tǒng)無關的更通用的bug管理系統(tǒng)。從現在的數據庫創(chuàng)建方式就很明確了。) 知識3:所以,配置的思路就是,apache(http.conf)支持PHP,PHP(php.ini)支持MySQL,apache(http.conf)支持Mantis;Mantis創(chuàng)建MySQL數據庫;使用mantis 使用過程中的問題: 通過http://服務器IP地址/mantis/訪問,創(chuàng)建賬號時有如下報錯(但能成功創(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] 缺陷跟蹤系統(tǒng)賬號注冊', '已創(chuàng)建如下賬號: \n\n用戶名:mountain100 \n電子郵箱han.gao@unison.net.cn \nIP 地址:10.96.210.132 經查說是編碼問題,建議導出數據庫,全部轉換成utf-8編碼。也可以在dos環(huán)境下用命令修改各個表的編碼,修改命令:ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name; 今天mantis出現了一個嚴重的錯誤,我還在修改和檢查中,主要是之前提交的附件,現在都為空的了,而且不能正確打開和瀏覽。 1、數據轉移功能: 在未作任何改動的情況下,系統(tǒng)是默認將附件保存到數據庫,可是當想直接獲得這些文件該怎么辦呢?其實mantis系統(tǒng)提供這么一個功能,將放在數據庫的附件文件轉移到磁盤里。你只需訪問:http://youserver/mantis/admin/system_utils.php,里面就會有一個按鈕-Move attachment to Disk,點擊他就ok了,當然必須確認你的config文件里,upload method是disk,否則也會出錯的。這樣數據庫中的附件就會被導出來,放到mantis根目錄下,你可以做一個數據保存工作了,實在是一個不錯的功能。 |
|