예전 글에서 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 각종 기본데이터 넣어주기
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) 로 바꿔주시면 됩니다.
- 끝 -
'Agile Game Project > Pragmatic tools' 카테고리의 다른 글
| 우분투(ubuntu)에 루비(ruby), 루비온레일즈 (ruby on rails)설치하기 (0) | 2008/08/13 |
|---|---|
| 아주 얇은 아파치 이야기 - VirtualHost 와 모니터링 (0) | 2008/06/20 |
| Redmine - 한글과 관련된 문제와 해결책 (5) | 2008/02/14 |
| Redmine - 기타. 네이버를 이용한 E-Mail 통지 (Notification) 셋업 (2) | 2008/02/12 |
| Redmine - 2.2 Subversion 연동하기 (Apache 이용) (0) | 2008/02/02 |
| Redmine - 2.1 Subversion 연동하기 (svn protocol 이용) (0) | 2008/02/01 |
|
프로젝트 관리 툴인 redmine 과
소스코드 매니지먼트 시스템= 형상관리시스템 (SCM) 의 일종인 subversion 을 깔려고 했다.
redmine 은 특정 프로젝트를 구현하는데 도움을 주는 관리 툴.
어떤 개발이나 유지보수 프로젝트를 수행한다 하면,
일단 설계를 끝내고,
구현해야 할 기능들을 뽑아낸 후에,
일정에 맞춰서 구현을 할때,
각종 구현해야 할 task들을 다 여기에 집어넣어두고,
하나하나 실행하면서 진행... |





이올린에 북마크하기
이올린에 추천하기