CentOS 5.x + Redmine 2.x


이슈관리를 위하여 레드마인을 설치하려고 보니 2.x 가 최신이네요

최신버전을사용하려면 상위버전의 ruby가 필요하고 또 다른것도 좀 있어야 합니다. 

설치순서는 ruby > rubygems > rails > redmine 의 순서로 설치.




1. Download ruby source

wget http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz

tar -zxvf ruby-1.8.7.tar.gz


2. Install dependencies

sudo yum install gcc

sudo yum install gcc-c++

sudo yum install zlib-devel

sudo yum install openssl-devel

sudo yum install readline-devel

sudo yum install sqlite3-devel


3. Build ruby from source

cd ruby-1.8.7

./configure --with-openssl-dir=/usr/lib64/openssl

make

sudo make install


4. Download rubygems source

wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz

tar -zxvf rubygems-1.3.6.tgz

cd rubygems-1.3.6

sudo ruby setup.rb


5. Install gems

sudo gem install rake

sudo gem install rails

sudo gem install mysql2


6. Install Redmine 

아래 문서를 따라서 차근차근 진행합니다.

http://www.redmine.org/projects/redmine/wiki/RedmineInstall


트러블슈팅

1) bundle install --without development test 


>>> 오류 발생 rmagick, postgresql, sqlite 등을 사용하지 않아서 아래처럼 제거하고 설치

`bundle install --without development test rmagick`

`bundle install --without development test postgresql sqlite`


2) ruby 위치를 못찾아서 'ln -s /설치위치 /usr/bin/ruby' 로 링크해 줌


나머지는 매뉴얼대로 설치 진행.


standalon 구동방식) 서버를 재시작해도 레드마인이 구동되기 위한 Init script 적용

/etc/init.d/redmine 파일의 내용


#!/bin/bash
#
# chkconfig: - 16 84
# description: Start up Redmine
#
# processname: redmine
# config: /etc/sysconfig/redmine

# source function library
. /etc/rc.d/init.d/functions

# Get network config
. /etc/sysconfig/network

[ "${NETWORKING}" = "no" ] && exit 0

# Defaults
DAEMON_HOME=/usr/local/redmine
DAEMON_ARGS="-e production -d"

# Daemon
NAME=redmine
RUBY=$(which ruby)

APP_PIDFILE=$DAEMON_HOME/tmp/pids/server.pid
DAEMON_PIDFILE=/var/run/$NAME.pid
DAEMON_LOCKFILE=/var/lock/subsys/$NAME

start() {
    echo -n $"Starting ${NAME}: "
       
    cd $DAEMON_HOME
    #redmine 2.x 인경우
    $RUBY script/rails server webrick $DAEMON_ARGS
    #redmine 1.x 라면 아래의 구동스크립트 사용
    #$RUBY script/server webrick $DAEMON_ARGS

    sleep 2

    status -p $APP_PIDFILE &> /dev/null && echo_success || echo_failure
    RETVAL=$?

    if [ $RETVAL -eq 0 ]; then
        touch $DAEMON_LOCKFILE
        cat $APP_PIDFILE > $DAEMON_PIDFILE
    fi

    echo
}

stop() {
    echo -n $"Shutting down ${NAME}: "
   
    killproc -p $DAEMON_PIDFILE
    RETVAL=$?

    [ $RETVAL -eq 0 ] && /bin/rm -f $DAEMON_LOCKFILE $DAEMON_PIDFILE

    echo
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        start
    ;;
    status)
        status -p $DAEMON_PIDFILE $NAME
    ;;

    *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|status}" >&2
        exit 3
    ;;
esac


위의 redmine 파일을 /etc/init.d/ 디렉토리 안에 넣고 아래의 순서를 따른다.

chmod +x /etc/init.d/redmine
chkconfig --add redmine
chkconfig redmine on
/etc/init.d/redmine start



아파치 연동방식) 가상호스트로 구동시킬 때


passenger 설치하고 아파치 모듈설치


gem install passenger
passenger-install-apache2-module


/etc/httpd/conf.d/redmine.conf 파일추가 후 아파치 재 시작


LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18
PassengerRuby /usr/bin/ruby

<VirtualHost *:80>
  ServerName redmine.abydos.co.kr
  # 레드마인이 설치된 디렉토리 안의 public 디렉토리를 지정

  DocumentRoot /opt/webRoot/redmine/public

  <Directory /opt/webRoot/redmine/public>

   # This relaxes Apache security settings.
   AllowOverride all
   # MultiViews must be turned off.
   Options -MultiViews
  </Directory>

   ErrorLog "|/usr/sbin/rotatelogs /etc/httpd/logs/redmine-error.%Y-%m-%d.log 86400"
   CustomLog "|/usr/sbin/rotatelogs /etc/httpd/logs/redmine-access.%Y-%m-%d.log 86400" "%h %l %u %t %D \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

</VirtualHost>


나눔고딕폰트로 변경)

나눔고딕으로 스타일 적용하려면

설치디렉토리안의 public/stylesheets/application.css 파일을 아래와 같이 수정


css 파일의 맨위에 아래 내용을 삽입하고

@import url('http://api.mobilis.co.kr/webfonts/css/?fontface=NanumGothicWeb');


원하는 부분에서 아래처럼 사용

font-family: 'NanumGothicWeb'


플러그인)

http://www.redmine.org/projects/redmine/wiki/Plugins



백업 및 복구, 데이터 이전)

다른 서버의 레드마인을 이전하거나, 장애에 대비하여 백업할때를 위하여 스크립트를 작성하고 cron으로 등록.


참고 : http://www.redmine.org/projects/redmine/wiki/HowTo_Migrate_Redmine_to_a_new_server_to_a_new_Redmine_version


고쳐서 사용중인 스크립트(git 대신 일자별로 백업되게 변경)

redmine_bak


crontab -l

0 2 * * * /root/redmine/redmine_bak


마이그레이션) 버전이 다른 레드마인을 업그레이드 하는 경우 아래의 과정 필수


http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade

[root@localhost redmine]# rake generate_secret_token

[root@localhost redmine]# rake db:migrate RAILS_ENV=production

[root@localhost redmine]# rake redmine:plugins:migrate RAILS_ENV=production 

[root@localhost redmine]# rake tmp:cache:clear

[root@localhost redmine]# rake tmp:sessions:clear

[root@localhost redmine]# /etc/init.d/httpd restart


시작페이지를 위키로 바꾸고 싶을 경우)


설치된 디렉토리안의 app/controllers/welcome_controller.rb 파일을 수정

@news = News.latest User.current
@projects = Project.latest User.current

to

@news = News.latest User.current
@projects = Project.latest User.current 
redirect_to :controller => 'projects', :action => 'show', :id => '이동시킬프로젝트아이디/wiki'



+ Recent posts