2009년 12월 28일 월요일

mantis 설치

1. 설치 및 운영에 관련된 내용은 다음의 링크를 참조하도록 한다.
    - http://cafe.naver.com/autoset.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=2042 -> 가리기

버그 트래커인 멘티스(Mantis)를 설치해보고, 간단히 살펴보겠습니다.

설치파일 다운로드를 위해 http://www.mantisbt.org 로 접속합니다.

좌측 메뉴에서 Download 를 클릭합니다.

1.1.0a3 버전은 개발이 진행되고 있는 버전이기에, 안정화되어 있는 1.0.7 버전을 다운로드합니다.

압축 파일을 클릭하여, 홈디렉토리에 다운로드합니다.

다운로드 받은 파일의 압축을 현재 폴더에 풉니다.

mantis-1.0.7 이라는 폴더가 생성되었고, 이름을 mantis 로 변경합니다.

그리고 mantis 폴더 안에 upload 폴더를 만들어둡니다.

기본적으로 업로드되는 파일들이 저장될 폴더가 됩니다. (mantis 폴더 안에 위치하지 않아도 됩니다.)

그리고 오토셋 - [파일] - phpMyAdmin 접속하기를 통해 PHP MyAdmin 으로 접속하신 후, 새 데이터베이스를 만듭니다.

데이터베이스 생성을 위해 root 계정으로 접속합니다.

그리고 멘티스가 사용할 DB 를 생성하시고, 콜레이션은 utf8_general_ci 를 선택합니다.

압축을 풀었던, mantis 폴더에 보시면 config_defaults_inc.php 파일이 있습니다.

(참고: 스크린샷에는 config_inc.php 로 되어 있는데 config_defaults_inc.php 파일을 여시면 됩니다)

이 파일을 열어줍니다.

그리고 DB 정보를 맞춰줍니다.

그리고 관리자 메일주소를 알맞게 수정합니다.

fallback 기본 언어를 한국어(korean)으로 변경합니다.

그리고 파일업로드 설정을 반드시 변경합니다.

기본 값은 DB 에 업로드되는 파일을 저장하는 것인데, 이것보다는 파일로 저장하는 것이 낫기 때문에

$g_file_upload_method 의 값을 DISK 로 변경합니다.

그리고 $g_absolute_path_default_upload_folder 는 앞서 생성한 upload 의 절대경로를 입력해줍니다.

http://localhost/mantis/admin 으로 접속한 뒤, Chek your installation 을 눌러 설정이 올바른지 확인합니다.

만일 위와 같은 경고 메시지가 나온다면, 오토셋에서 [도구] - [PHP 기본 설정] 에서 전역 변수화 설정 부분을 사용않음으로 변경 후,

[변경사항 적용] 을 하시고, 웹서버를 재시작하시면 됩니다.

다른 프로그램들에 영향을 미칠 수 있으므로 잘 판단하시고 필요한 경우에만 설정을 변경해주시기 바랍니다.

Send Mail 버튼을 눌러 메일 발송이 잘 되는지 확인합니다.

앞서 설정 파일에 보면, 메일 발송 방식을 설정하는 부분이 있는데 PHP 의 mail() 함수, SMTP 서버 직접 연결 방식, 센드메일 이용방법이 있습니다.

기본값인 mail() 함수 이용방법으로 놔두었기때문에 반드시 오토셋 [도구] - Sendmail 설정에 SMTP 서버 정보를 기록해주셔야 합니다.

SMTP 설정 방법은 카페에서 SMTP 나 메일로 검색하면 다수 소개된 글과 질문과 답변을 확인 할 수 있으니 이곳에서는 별도로 소개하진 않겠습니다.

메일이 발송되면 우측 예시와 같이 successful 메시지가 표시되게 됩니다.

실제로 메일로 위와 같은 메일이 왔다면 정상적인 것입니다.

설정 사항 이상 유무를 확인했으니, 이제 설정 파일을 생성해봅니다.

http://localhost/mantis/admin/install.php 로 접속합니다.

Admin Username 과 Admin Password 는 위쪽 부분에 미리 입력되어 있는 Username 과 password 와 동일하게 입력합니다.

그리고 Install/Upgrade Database 버튼을 누릅니다.

그러면 mantis 폴더에 config_inc.php 파일이 생성됩니다.

설정이 완료되었다면, admin 폴더를 삭제합니다.

http://localhost/mantis 로 접속합니다.

Username 에는 administrator 를 Password 에는 root 를 입력하고 로그인합니다.

root 는 기본 password 이므로, 접속후 변경이 필요합니다.

접속하시면 위와 같은 초기화면을 확인 할 수 있습니다.

먼저, 한글로 된 메뉴를 사용하기 위해 My Account - Preferences 를 누릅니다.

그리고 Language 를 korean_utf8 로 선택합니다.

그런다음 Update Prefs 버튼을 눌러 설정을 적용해줍니다.

한가지 작업을 더 해줘야 DB에 저장되는 데이터에서 한글이 올바르게 표시되게 됩니다.

mantis 폴더 안에 보시면 core 라는 폴더가 있고, 그 안에 database_api.php 파일이 있습니다.

EditPlus 나 메모장을 열어 51 번째 줄에 위의 그림과 같이 추가합니다.

추가한 내용은 $g_db->Execute("set names utf8"); 입니다.

상기와 설정한 후, [설정상태 변경] 을 눌러 비밀번호를 변경하고, 실명, 이메일 필드를 각각 채웁니다.

그리고 정보 갱신을 합니다.

다음으로 프로젝트 생성을 알아보겠습니다.

관리 - 프로젝트 관리를 눌러 [새로운 프로젝트 생성] 을 누릅니다.

프로젝트 정보를 입력합니다.

단, 여기서 주의 할 점은 업로드 파일 경로는 mantis 경로를 기준으로 입력합니다.

그리고 업로드되는 폴더는 반드시 미리 생성되어 있어야 합니다.

프로젝트 추가를 하기 전에, 아래와 같이 폴더를 미리 생성해두시기 바랍니다.

다음과 같이 프로젝트 목록이 추가된것을 확인 할 수 있습니다.

생성된 프로젝트명을 클릭하면 프로젝트에 관련해서 설정과 프로젝트 참여 인원등을 추가, 삭제 할 수 있습니다.

상기 그림과 같이 프로젝트에 보고 항목을 만들 수도 있습니다.

멘티스를 이용하는 계정을 관리자가 추가하고자 한다면, 관리 - 사용자 관리(관리만 눌러도 됩니다) 에서 할 수 있습니다.

계정 생성 버튼을 누르면, 아래와 같은 등록 폼이 나타납니다.

사용자 생성 버튼을 누르면 해당 이메일로 다음과 같은 메시지가 발송됩니다.

해당 사용자가 링크를 눌러 비밀번호를 설정 할 수 있도록 하고 있습니다.

상기 그림을 보시면 알겠지만 주소가 localhost 로 시작하는 주소로 발송되고 있습니다.

멘티스 설정 파일에 도메인을 설정하지 않는다면 멘티스에 접속하는 도메인이 기본 주소로 사용되어 메일 주소에 포함되게 됩니다.

즉, http://자기도메인/mantis 로 접속해야 메일에 작성되는 주소도 http://자기도메인/mantis 로 표시되게 됩니다.

이슈 보고하기 기능을 통해 버그를 등록 할 수 있습니다.

앞서 추가한 caoy 계정으로 로그인하면, 상태별로 이슈들을 확인 할 수 있습니다.

이슈번호를 눌러 상세 내용을 확인 할 있고, 내용을 추가하거나 이슈 상태를 변경 할 수 있습니다.

보다 자세한 내용은 관련 문서를 인터넷 검색을 통해 참조하시길 바라며,

한국어 메뉴를 설정해두시면 쉽게 어떤 내용인지 파악이 가능하리라 생각합니다.

.

    - http://blog.daum.net/sunnle/1513831 -> 가리기

mantis라고 Bug Tracking 시스템이 있다. 사내에서 필요할 것 같아서 설치하였다.
사실 여기에 해당하는 프로그램은 사실 엄청나게 많은데 (참조)
여러 가지로 고민(?)하다가 Mantis가 채택이 되었다.
Mantis를 몇 일 테스트 본 느낌은 디자인이 매우 투박한 것, 문서화 수준이 별로라는 것 빼놓고는 그럭저럭 쓸만한 것 같다.
아래는 혹시 내가 다음에 설치할 상황을 위해서 혹은 Mantis를 설치할 다른 사람을 위해서 설정한 Configuration file을 공유한다.
내가 사용하는 환경은 PHP/Apache/MySQL이며
아래와 같은 Feature들을 사용한다.

  • SVN/TortoiseSVN/WebSVN 연동

  • Issue의 상황이 변동될 때, E-Mail 발송

  • jpGraph 사용으로 통해 Graphical한 통계 사용

<?php
    # set these values to match your setup
    $g_hostname = "localhost";
    $g_db_username = "root";
    $g_db_password = "";
    $g_database_name = "bugtracker";
    $g_db_type = "mysql";
    # your e-mail
    $g_administrator_email = 'administrator@.com';
    $g_webmaster_email = 'webmaster@.com';
    $g_from_email = 'bugtracker@.com';
    $g_return_path_email = 'admin@example.com';
    # --- file upload settings --------
    $g_allow_file_upload    = ON;
    #$g_login_method = MD5;
    $g_validate_email = OFF;
    $g_default_language = 'korean_utf8';
    $g_back_language = 'korean_utf8';
    $g_smtp_host = "exchange.com";
    $g_smtp_username = "";
    $g_smtp_password = "";
    $g_phpMailer_method = 2; // Using STMP
    $g_window_title = "My Bug Tracker";
    $g_use_jpgraph = ON;
    $g_jpgraph_path ='./jpgraph-1.21b/src/';
    $g_default_advanced_report    = ON;
    $g_default_advanced_view        = ON;
    $g_default_advanced_update    = ON;
    $g_source_control_account = 'administrator';
    $g_source_control_notes_view_status = VS_PUBLIC;
    $g_source_control_set_status_to = RESOLVED;
    $g_source_control_regexp = "/\b(?:issue|bug)s? #?(\d+)\b/i";
    $g_source_control_fixed_regexp = "/\bfixed (?:issue|bug)s? #?(\d+)\b/i";
    $g_bottom_include_page        = '%absolute_path%/my/bottom.php';
    $g_top_include_page        = '%absolute_path%/my/top.php';
?>

SVN과 연동하게 되면 아래와 같이 변경사항을 Commit할 때, Issue#를 적어주면 해당 Issue의 Memo에 Log글이 추가된다.

 

 
SVN 쪽에서도 설정이 필요한데, Repository의 hooks 디렉토리 밑에 post-commit.bat를 만들고 아래 내용을 넣어 주어야 한다. SVN에서 Commit할 때, 실행되는 스크립트로 Matis의 Memo에 포스팅하는 역할을 담당한다. 여기에 Posting 하게될 컨텐츠의 모양은 자신에 맞게 잘 Customizing하면 된다.

REM #################################
REM Post-commit hook for MantisBT integration
REM #################################
SET REPOS=%1
SET REV=%2
SET DETAILS_FILE=C:\tmp\svnfile_%REV%
SET LOG_FILE=C:\tmp\svnfile_%REV%_Log
SET DIFF_FILE=C:\tmp\svnfile_%REV%_DIFF
echo ****** Source code change ******>>%DETAILS_FILE%
svnlook log -r %REV% %REPOS%>>%DETAILS_FILE%
echo -------------------------------->>%DETAILS_FILE%
echo SVN Revision:%REV%>>%DETAILS_FILE%
svnlook changed -r %REV% %REPOS%>>%DIFF_FILE%
C:\PHP5\php.exe "C:\iconv.php" %DETAILS_FILE% euc-kr utf-8
C:\PHP5\php.exe "C:\link_websvn.php" %REPOS% %REV% %DIFF_FILE% >> %DETAILS_FILE%
C:\PHP5\php.exe "C:\bugtracker\core\checkin.php" <%DETAILS_FILE% >%LOG_FILE%
DEL %DETAILS_FILE%
DEL %LOG_FILE%
DEL %DIFF_FILE%

끝으로, TortoiseSVN에도 자체적으로 BugTracker와 연동하는 기능이 있는데 아래 그림과 같이 설정하면 된다.

download  
설정을 하면 SVN Log보기에서 관련된 Mantis의 Issue 페이지로 바로 이동하게 할 수 있다.

download2
Posted by airlover

    - http://woohaha.egloos.com/1006717  -> 가리기

2년 전인가...
사내 버그 추적 시스템을 개발하라는 명쾌한 지령을 하달받으면서 X-Box 를 꿀꺽 먹어삼켰는데, 먹은 X-Box 는 커녕 버그 추적 시스템(코드명 : DDR)도 내뱉지 못하고 있음에 나름대로 가시방석에 앉은 느낌으로 지내왔다.
그동안 새로운 프로젝트 개발에 치중하다보니 이미 개발되어 동작중인 모듈 및 프로젝트에 대한 버그 보고는 개인대 개인으로 받아서 처리하게 되고 사내에서 유지되는 아웃룩을 이용한 버그 추적 시스템(?)은 그 활용도가 점점 떨어져가고 있는 상황이었다.
오늘 그동안 맡고 있던 프로젝트의 릴리즈가 대충 끝나서 그동안 쌓아놓은 버그를 잡으려고 게시판을 보는 순간
정리되기 힘든 상황까지 치달은 모습에 언젠가 왕멀님의 포스트에서 봤던 mantis를 다운로드 받고 바로 설치작업에 들어가게 되었다.
[설치과정]
1. 우선 mantis는 php 기반으로 되어 있기 때문에 윈도우즈 웹서버인 IIS에서 PHP를 돌릴 수가 있어야 했다.
다행히도 이미 사용해본 경험이 있는 PHP Setup for IIS 를 사용하였다.
이번에는 mantis를 다운로드 받았다.
[2007년 10월 2일 수정]
현재 안정적인 최신 버전은 1.0.8이다.
설치작업은 다운로드받은 압축파일을 풀어서 통째로 디렉토리에 밀어넣는 방법을 사용하였다.
물론 IIS에서 mantis를 위한 가상디렉토리를 만들어 주어야 한다.
2. 그리고나서 바로 돌려보니(가상디렉토리로 접근해보니) 동작 안하는건 당연지사...
DB설치가 필요했다.
설치에 필요한 내용은 mantis 홈페이지의 매뉴얼 페이지를 적극 활용하였다.
DB를 하나 만들고나서(IIS의 phpMyAdmin 가상디렉토리로 접근하여 mantis라는 이름의 DB를 생성하였다.) 해당 DB에 대고 mantis 의 sql 폴더에 있는 db_generate.sql을 돌렸다.(최신 버전 압축 파일 안에는 sql 폴더가 포함되어 있지 않다. 그래서 다운로드받을 수 있도록 링크로 연결해 두었다. [다운로드]) - phpMyAdmin 2.7.0-pl2 기준임.
3. 여기까지 수행한 뒤 다시 한번 가상디렉토리로 접근해보니 administrator 계정에 접근 불가라는 메시지를 보여준다.
일단 phpMyAdmin 으로 들어가서 mantis_user_table 에 등록되어 있는 administrator 계정의 email 컬럼을 실제로 이메일을 받을 수 있는 계정으로 변경하고, protected 컬럼값을 0으로 설정하여 계정보호를 해제한다.
그리고나서 다시 mantis 로 접속하여 administrator 비밀번호 찾기 기능을 사용하여 비밀번호를 재설정한다.
[설치시 애로점]
1. mantis는 사용자계정 등록시 email 로 확인 메일을 보내고 그 메일을 통해서 사용자계정 추가 작업을 완료하는데, email 발송 루틴에서 문제가 있어서 조금 고생을 하였다.
이 문제는 config_inc.php 에 다음과 같은 전역 변수 설정을 추가하여 해결하였다.
$g_smtp_host = "메일서버IP";
$g_smtp_username = "메일서버에접근하기위한계정";
$g_smtp_password = "비밀번호";
$g_phpMailer_method = 2; //SMTP로 메일보내기 방법
그리고 메일계정에 대한 다음 설정도 수정해 주어야 한다.
$g_administrator_email = '관리자이메일계정';
$g_webmaster_email = '웹마스터이메일계정';
# the "From: " field in emails
$g_from_email = '메일송신시표시계정';
# the return address for bounced mail
$g_return_path_email = '리턴메일받을계정';
2. 사용자계정의 권한 및 기타 잡다구리한 설정들을 변경하기 위해서 어드민으로 로그인하고자 했으나
다음과 같은 에러 메시지를 보여줌.
오류: 계정이 사용 정지 됐거나, 사용자이름/비밀번호가 올바르지 않습니다.
관리자로 등록한 계정이 보호계정으로 설정되었는데, 이 보호계정을 푸는 방법을 몰라서 조금 고생했다.
결국엔 phpmyadmin 으로 들어가서 mantis 데이터베이스의 mantis_user_table 테이블에 있는 값을 직접 수정하여 해결하였다.(이런 방법밖엔 없는지...)
새로 추가한 계정의 권한(access_level) 필드값을 관리자 계정의 값과 동일하게 설정하여 로그인한 후 관리자 계정의 패스워드를 초기화시켜버리고 다시 설정하였다.(메일 계정을 설정해 주어야 해당 메일로 관리자계정의 패스워드를 설정할 수 있는 메일이 발송된다)
나머지 설치 과정은 그다지 어려운 편은 아니었다.
[남은 일]
이제 사내 모든 프로젝트에서 사용할 수 있도록 진행중인 프로젝트를 등록하는 일이 남아있다.
어떤 식으로 관리를 해야 효율성을 극대화시킬 수 있을지 조금 고민이 필요한 부분이다.
사용해가면서 느낀 점이나 활용팁들을 또 올려보고자 한다.

2. Fedora7은 비교적 최신버전의 APM(Apache+PHP+MySQL)환경을 기본 제공해주므로 설치시 서버항목에서 웹서버, MySQL을 체크해두면 Mantis를 설치하기 위한 환경이 마련된다. 
3. 방화벽 및 SELinux는 처음 설치부터 비활성화로 설정한다. (정확한 원인은 모르겠지만 활성화 상태로 설치해놓고 나중에 비활성화 상태로 바꾼다고 해도 외부에서의 3306포트 접속을 차단해 버렸다.)
4. 브라우저에서 Mantis홈/admin/install.php 를 실행하여 설치시 쿼리가 실제로 DB에 질의되지 않는다.
    때문에 "Install/Upgrade Database" 버튼으로 실행하기 전에 "Print SQL Queries instead of Writing to the Database" 항목을 체크해두어 출력되는 쿼리를 긁어다가 phpMyAdmin 등에서 직접 질의하여 설치하도록 한다.

댓글 없음:

댓글 쓰기