태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
BLOG main image
분류 전체보기 (100)
Perforce (4)
Agile Game Project (31)
mac (4)
Web 2.0 (2)
Resource (17)
diary [미공개] (0)
Stared [미공개] (0)
Dev (21)
45385 Visitors up to today!
Today 29 hit, Yesterday 88 hit
daisy rss
tistory 티스토리 가입하기!
'Subversion'에 해당되는 글 4건
2008/02/14 12:19

예전 글에서 BitNami Redmine 좋다고 좀 흥분했는데... ㅎㅎ 테스트 용도로는 충분하지만 실제로 서비스 하려면 결국 이것저것 손을 봐야합니다.
다행히도 서비스 등록, 시작/정지 등등... 기본 세팅이 충실히 되 있어서 한결 편하게 세팅할 수 있다는 장점은 여전합니다.^^;

한글 환경에서 Redmine을 서비스하기 위해서는 크게 MySQL을 UTF-8로 변신시키기, Redmine 최신 소스 일부 손보기 정도가 있습니다.

1. MySQL UTF-8로 변신시키기
    BitNami에서 깔아주는 MySQL은 latin1으로 셋팅됩니다. 웹에서 잘 보여지고 잘 저장되지만 나중에 분명 골치아픈 문제가 생길 것이기 때문에 애초에 제대로 세팅을 해보겠습니다.

  • \BitNami Redmine Stack\mysql\my.ini를 열어서 아래 내용을 추가/수정 합니다.

[client]
default-character-set=utf8

[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

[mysql]
default-character-set=utf8

  • MySQL 서비스를 새로 시작하고 ( 실행 창에서 services.msc 치고 redmineMySQL을  중지/시작 하면 빠릅니다.) 콘솔로 로그인해서 서버 설정 상태를 확인 합니다.

c:\program files\BitNami Redmine Stack\mysql\bin\mysql -uroot -p
Enter password: ***********

mysql> show variables like 'c%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | utf8_general_ci            |
| collation_database       | utf8_general_ci            |
| collation_server         | utf8_general_ci            |
| concurrent_insert        | ON                         |
| connect_timeout          | 5                          |
+--------------------------+----------------------------+
12 rows in set (0.00 sec)

이렇게 utf8이 잔뜩 나오면 제대로 된겁니다. ^^

  • redmine_production DB 새로 생성

mysql> drop database redmine_production;
mysql> CREATE DATABASE redmine_production DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

     이제 MySQL과 DB는 준비가 됐습니다.


2. 이왕 건들기 시작한거 redmine도 최신 소스로 가져와서 붙여보기
   
우선 서비스를 모두 내리고, 기존 redmine 폴더는 redmine_old로 바꿔줍니다.

  • redmine 저장소에서 최신 개발소스 가져오기

c:\program files\BitNami Redmine Stack\svn export http://redmine.rubyforge.org/svn/trunk redmine

기존 redmine_old 폴더에서 database.yml와 scripts 폴더를 복사해 옵니다.


C:\Program Files\BitNami Redmine Stack\redmine\config\database.yml을 열어서 아래와 같이...

production:
  adapter: mysql
  database: redmine_production
  host: localhost
  username: root
  password: root_paddword
  encoding: utf8

3. 빈 redmine_production 채워넣기

  • Ruby on Rails에는 db:migrate가 있죠
  • 당연히 이 작업을 하기 전에 MySQL이 실행되고 있어야합니다.

C:\Program Files\BitNami Redmine Stack\redmine\rake db:migrate RAILS_ENV="production"

4. redmine 각종 기본데이터 넣어주기

\BitNami Redmine Stack\redmine\rake redmine:load_default_data RAILS_ENV="production"


4. 기존 redmine_old폴더에 scripts 폴더만 새로 만들어진 redmine 폴더로 옮깁니다.
(서비스 시작과 관련한 스크립트들이 들어있어요. 이거 안해주면 사이트가 안뜨고 503 에러 납니다. )

5. http://localhost 로 접근해서 redmine 사이트가 잘 뜨면 성공! 로그인은 admin / admin으로 하시면 됩니다.

* 0.7.X 버전부터 한글 파일 업로드/다운로드 문제가 해결됐습니다.
아래 내용은 참고 정도로만...

이제 드뎌 한글 파일 업로드 / 다운로드가 되도록 수정을 해보겠습니다.

아래 내용은 한글 Windows XP SP2 환경하에서만 확인됐습니다. 아마도 UTF-8 이 잘 지원되는 Mac이나 Linux에서는 그냥 잘 될 수도 있습니다.

1. redmine은 파일 업로드 관련 코드는 모두 attachment 모델에 들어있습니다.

   인터넷을 검색해본 결과 UTF-8에서 EUC-KR로 변환하면 윈도우에서 파일 읽고/쓰기가 가능하다고 해서 아래와 같이 수정했습니다.

  • C:\Program Files\BitNami Redmine Stack\redmine\app\models\attachment.rb 수정 (Bold가 추가/수정되는 내용입니다.)

require "digest/md5"
require "iconv"

# Copy temp file to its final location
def before_save
    if @temp_file && (@temp_file.size > 0)
        logger.debug("saving '#{self.diskfile}'")
        logger.debug("saving '#{euc_kr_diskfile}'")
        File.open(euc_kr_diskfile, "wb") do |f|
            f.write(@temp_file.read)
        end
        self.digest = Digest::MD5.hexdigest(File.read(euc_kr_diskfile))
    end
    # Don't save the content type if it's longer than the authorized length
    if self.content_type && self.content_type.length > 255
      self.content_type = nil
    end
end

# Returns file's location on disk
def diskfile
    "#{@@storage_path}/#{disk_filename}"
end

# 한글 파일추가 되는 메소드
def euc_kr_diskfile
    "#{@@storage_path}/#{Iconv.new('EUC-KR','UTF-8').iconv(disk_filename)}"
end

  • 이제 다운로드도 잘 되게 해야겠지요.
    Notepad++이나 editplus 같은 에디터 등에서 파일 찾기로 diskfile 메소드를 쓰는 모든 파일을 찾아봅니다.

    현재 redmine 버전은 총 3개의 컨트롤러에서 해당 메소드를 호출하고 있습니다.

C:\Program Files\BitNami Redmine Stack\redmine\app\controllers\attachments_controller.rb
C:\Program Files\BitNami Redmine Stack\redmine\app\controllers\documents_controller.rb
C:\Program Files\BitNami Redmine Stack\redmine\app\controllers\versions_controller.rb

해당 파일에서

send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename)... 로 되있는 부분을
send_file @attachment.euc_kr_diskfile, :filename => filename_for_content_disposition(@attachment.filename) 로 바꿔주시면 됩니다.

- 끝 -

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://twiny.tistory.com/trackback/1676
Tracked from 손님, 그리고. | 2008/03/08 13:51 | DEL
프로젝트 관리 툴인 redmine 과 소스코드 매니지먼트 시스템= 형상관리시스템 (SCM) 의 일종인 subversion 을 깔려고 했다. redmine 은 특정 프로젝트를 구현하는데 도움을 주는 관리 툴. 어떤 개발이나 유지보수 프로젝트를 수행한다 하면, 일단 설계를 끝내고, 구현해야 할 기능들을 뽑아낸 후에, 일정에 맞춰서 구현을 할때, 각종 구현해야 할 task들을 다 여기에 집어넣어두고, 하나하나 실행하면서 진행...
BlogIcon twiny | 2008/03/12 16:19 | PERMALINK | EDIT/DEL | REPLY
말씀하신데로 서브버전 연동시 한글 파일 , 한글 폴더명은 정상적으로 처리하지 못하더군요. mingle은 깔끔하게 되던데...
BlogIcon 괴영감오비완 | 2008/03/13 10:54 | PERMALINK | EDIT/DEL | REPLY
아 네 mrsohn입니다.
네 그렇더군요, 저장소에는 일단 소스코드가 주로 들어가니, 파일명 폴더명 정도는 영어만으로도 크게 불편함이 없을 듯 해서, 일단 이대로 써보려고 합니다. 좋은 글 감사했습니다. ^^
BlogIcon twiny | 2008/03/13 12:50 | PERMALINK | EDIT/DEL
오비완님 블로그 갔더니 자전거 잔뜩 나오네요^^;
폴딩되는 초보 자전거 하나 추천해주세요... 주말에 동생이랑 한강변 좀 달려 보려구요.
BlogIcon 괴영감오비완 | 2008/03/17 11:37 | PERMALINK | EDIT/DEL
아 네 티스토리는 자전거 블로그로 사용중 쿨럭;
다혼 XXX D7 중에서 디자인 맘에 드는 걸로 사시면 일단 괜찮습니다. (XXX=>보드웍,스피드,비테스)

꼭 접히는 것일 필요는 없다면,
베네통 미니스프린터 라는 제품도 좋구요.

자세한 건 http://cafe.naver.com/dahon 음...
김흥준 | 2008/05/20 18:26 | PERMALINK | EDIT/DEL | REPLY
PDF export하면 한글이 깨지던데 혹시 해결하셨나요 ?
Name
Password
Homepage
Secret
2008/02/12 11:17

각종 프로젝트 변경사항을 편하게 이메일로 받아볼 수 있도록 셋업해보겠습니다.

Redmine이 설치된 PC에 IIS가 설치되있다면 그냥 SMTP 서비스를 돌리면 되겠지만,

해보니 잘 안됩니다. -.-; IIS SMTP 설정을 IP기반 Relay 허용으로 설정하고 Anonymous로 열어놨습니다.
물론 ActionMailer 설정은 아래와 같이... IIS SMTP Mail Queue에 쌓인 메일을 열어보니 수신자 정보가 없습니다. 왜 안되는건지

 # SMTP server configuration
 config.action_mailer.smtp_settings = {
  :address => "127.0.0.1",
  :port => 25,
  :domain => "somenet.foo",
  :authentication => :plain
 }
 
 config.action_mailer.perform_deliveries = true
 config.action_mailer.delivery_method = :smtp

저 같은 경우는 네이버 SMTP를 이용하고 있습니다.
- 그렇습니다. 저는 자랑스런 네이버 "으뜸사용자" 입니다. ㅎㅎ


Redmine도 Ruby on Rails 애플리케이션이니까 당연히 다음의 경로에 설정 파일이 있습니다.
\Bitnami Redmine Stack\redmine\config\environment.rb

설정파일을 쭈욱 따라가다 보면 다음과 같은 부분이 있습니다.

위의 설정 부분을 적절히 하시고 꼭 config.action_mailer.perform_deliveries 값을 true로 바꿔주세요.

- 끝 -

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://twiny.tistory.com/trackback/1675
BlogIcon 황상철 | 2008/02/14 09:31 | PERMALINK | EDIT/DEL | REPLY
네이버에 이런 서비스도 있었군요. 몰랐는데 확인해 보니 저도 되네요. 좋은거 알았습니다.
| 2008/03/20 10:47 | PERMALINK | EDIT/DEL | REPLY
비밀댓글 입니다
Name
Password
Homepage
Secret
2008/02/02 15:41

저번 글에 이어 이제 Subversion을 Apache와 연동하는 방법을 설명하겠습니다.

구글링을 해보면 Apache 2.2.X와 Subversion 1.4.5는 연동이 안된다고 합니다. 저도 버전 안올리고 BitNami Redmine 설치된 상태로 시도해봤는데 안되더군요.

서브버전 다운로드 페이지를 열어보니 (http://subversion.tigris.org/project_packages.html ) 새 버전이 나왔군요. 혹시나 하고 찾아들어갔더니 Subversion 1.4.6 Win32 binaries for Apache 2.2.x. 라는 다운로드 링크가 있습니다.

이제 기존에 깔린 Subversion 1.4.5 버전을 Subversion 1.4.6 버전으로 무사히 바꾸는 일만 남았습니다.

1. Redmine 서비스를 모두 멈춥니다

\Bitnami Redmine Stack\servicerun.bat STOP

2. \BitNami Redmine Stack\subversion 을 subversion 1.4.5로 이름을 바꿔줍니다.

3. 다운받은 Subversion 1.4.6을 \BitNami Redmine Stack\subversion에 압축해제 합니다.

4. \Bitnami Redmine Stack\subversion 1.4.5\scripts 폴더를 \Bitnami Redmine Stak\subversion 으로 복사합니다.

5. \Bitnami Redmine Stack\subversion\bin\에 있는 mod_authz_svn.so, mod_dav_svn.so 파일을 \Bitnami Redmine Stack\Apache\modules로 복사합니다.

6. Apache basic authentication을 이용해 Subversion 인증을 처리할 것이기 때문에
\Bitnami Redmine Stack\SvnRepo 폴더에서 htpasswd 명령을 이용해 admin 계정을 세팅 합니다.

\Bitnami Redmine Stack\SvnRepo\htpasswd -cm svn.htpasswd admin

일단 파일이 만들어진 다음부터는 htpass -m 파라미터만 붙여주면 됩니다.

\Bitnami Redmine Stack\SvnRepo\htpasswd -m svn.htpasswd twiny

7. \BitNami Redmine Stack\Apache2\conf\httpd.conf 파일을 열고 맨 밑에 다음과 같이 추가합니다.

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<VirtualHost *:88>
 <Location /svn>
   DAV svn
   SVNParentPath "C:/Program Files/BitNami Redmine Stack/SvnRepo"
   AuthName "Subversion repository"
   AuthType Basic
   <LimitExcept GET PROPFIND OPTIONS REPORT>
     Require valid-user
   </LimitExcept>
 
   AuthUserFile "C:/Program Files/BitNami Redmine Stack/SvnRepo/svn.htpasswd"
 </Location>
</VirtualHost>

앞으로 http://localhost:88/svn/ 로 들어오면 subversion에 접속이 됩니다.

8. Redmine에서는 다음과 같이 하시면 됩니다.

사용자 삽입 이미지


- 끝

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://twiny.tistory.com/trackback/1673
Name
Password
Homepage
Secret
2008/02/01 17:18

more..

설치 잘 하셨죠?

별 문제없이 대략 한시간 안에 설치 마치고 이것저것 써보면서 Redmine의 매력에 푹 빠졌을텐데요. 이제부터 조금 복잡합니다. -.-;
원래 주는데로 쓰면 괜찮은데 뭐를 바꾸기 시작하면 그때부터 고생이 시작되죠.

그 처음으로 Subversion 연동을 시작해보겠습니다.

BitNami Redmine Stack은 크게

Apache 2.2.4
Ruby 1.8.6
Rails 2.0.2
Subversion 1.4.5
MySQL 5.0.45
Redmine 0.6.3

으로 구성되 있습니다.

이 중 Apache 2.2.4와 Subverion 1.4.5는 서로 연동이 불가능한 버전이라고 합니다. 뭐 저도 잘 안됐는데 되신 분 있으면 댓글을...
Apache 연동을 하려면 이 글을 읽지 말고 Redmine - 2.2 Subversion 연동하기 ( http protocol 이용) 을 읽어주세요.

그럼 이제 시작해볼까요?

1. Subversion 클라이언트 설치

이미 깔려있으면 상관없고 없다면 Subverion 1.4.5와 잘 어울리는 TortoiseSVN 1.4.5 을 깔아주세요.

2. 서브버전 저장소 생성

저장소 하나 만들고 말게 아니기 때문에 BitNami Redmine Stack 폴더 밑으로 저장소의 부모 폴더를 만들어 줍니다.

\BitNami Redmine Stack\SvnRepo 폴더 생성


그 밑에 첫번째 서브버전 저장소를 만듭니다.

\BitNami Redmine Stack\SvnRepo\Sample 폴더 생성

\BitNami Redmine Stack\SvnRepo\Sample 폴더로 이동해서 아래처럼 Create repository here 를 해주세요.

타이핑 좋아하시는 분은 \BitNami Redmine Stack\SvnRepo에서

svnadmin create --fs-type fsfs sample 라고 하시면 됩니다. (명령어 못 찾으면 Path에 추가하시거나 Full-Path 치세요. ㅎㅎ)

3. \BitNami Redmine Stack\SvnRepo\Sample\conf\passwd 파일을 열어서 계정 추가.

   예) admin = 1234

4. \BitNami Redmine Stack\SvnRepo\Sample\conf\svnserve.conf 파일 열어서 아래 내용 주석 제거 ( #을 빼주시면 되요 )

   anon-access = read
   auth-access = write
   password-db = passwd

5. 명령창에서 등록된 윈도우 서비스 중 redmineSubversion을 내립니다. ( 몰랐는데 sc 라는 명령어도 있네요)

    \BitNami Redmine Stack\Subverion\scripts\serviceinstall.bat REMOVE

6. \BitNami Redmine Stack\Subverion\scripts\serviceinstall.bat 파일을 열어서 저장소 폴더 정보를 추가로 넣어줍니다.  (port는 고치지마세요)

"C:\Program Files\BitNami Redmine Stack/subversion\scripts\winserv.exe" install redmineSubversion -displayname "redmineSubversion" -start auto "C:\Program Files\BitNami Redmine Stack/subversion\bin\svnserve.exe" -d --root "C:\Program Files\BitNami Redmine Stack\SvnRepo" --listen-port=3690

7. 다시 redmineSubverion 을 윈도우 서비스로 등록합니다.

    \BitNami Redmine Stack\Subverion\scripts\serviceinstall.bat INSTALL

8. 이제 드디어 Redmine 설정을 합니다.

프로젝트를 하나 만들고 들어가서 설정 > 저장소 를 선택 후 다음과 같이 입력...

Login과 Password는 아까 passwd에 입력했던 값을 넣어주시면 되요.

9. 위의 모든 과정이 잘 됐으면 아래와 같은 화면을 보실 수 있습니다.

10. 저장소에서 한글 보여주기

좌측 상단 "관리자" 링크 또는 " Administrator" 링크를 누르고 설정 화면에서
Repositories encodings 값에 UTF-8,EUC-KR을 추가해주면 한글 내용을 볼 수 있습니다.


- 끝 -

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://twiny.tistory.com/trackback/1672
Name
Password
Homepage
Secret
prev"" #1 next