개인적으로 Project Management Tool 중에서 가장 좋아하는 Redmine~!!!
Ruby가 아니라 Python으로 만들어졌다면 100점 만점에 100점을 줄텐데.... ^^

이 Redmine 설치에 대해서 이미 포스팅을 했다고 생각했는데,
지금 찾아보니 없어서 지금에서야 헐래벌떡 포스팅을 하고자 하고 있다.



내가 또 개인적으로 너무나 좋아하는 Ubuntu에서
너무나 친절하게도 apt-get으로 redmine을 설치할 수 있도록 제공해주고 있다.

하지만 일단은 Source Code로 설치하는 과정에 대해서 살펴보도록 하겠다.

나중에 기회가 되면 apt-get으로 설치하는 것과 관리하는 법에 대해서도 살펴보겠다.




Redmine의 경우 Ruby 등의 의존성이 있는 것들의 버전 맞추는 것과
Database에 대해서 설정하는 것들이 조금은 어려움이 있다.

그래서인지 설치하기 편하게 제공해주는 Bitnami Redmine 패키지도 있다.



설치하기가 쉽지 않다고는 하지만,
Redmine에서 친절히 모두 설명해주고 있기 때문에 차근차근 잘 따라하면 된다!!!


Redmine에서 제공해주는 설치 가이드
   - http://www.redmine.org/projects/redmine/wiki/RedmineInstall



01. 버전 확인하기

      - 2012.03.23 현재 Redmine의 최신 버전은 [ v1.3.2 ] 이다.
      - 설치할 버전에 대해서 잘 기억을 해두자.


02. Ruby & Ruby on Rails & Rack 호환 버전 확인하기

      - 가장 어려운 Ruby 형제들 버전 호환성 맞추기
      - 우리는 v1.3.2 를 설치할 것이기에 아래와 같이 버전을 맞추면 된다.

  Redmine  Supported Ruby  Required Rails  Supported Rack  Supported RubyGems
 1.3.x  ruby 1.8.6, 1.8.7  Rails 2.3.14  Rack 1.1.x  RubyGems <= 1.7


03. 기본 패키지 + Ruby 설치하기

      - Ubuntu에서 필요한 기본 패키지를 설치하자. 좀 많다.
      - Ruby를 소스 코드 설치할 수도 있는데, 많은 귀찮은 부분이 있으므로 그냥 아래와 같이 패키지 설치하자.

 


 $ sudo apt-get install build-essential ruby1.8 ruby1.8-dev irb1.8 rdoc1.8 libdbd-pg-ruby1.8 zlib1g-dev libpcre3-dev libopenssl-ruby1.8 libzlib-ruby libssl-dev libcurl4-openssl-dev libpq-dev libreadline-gplv2-dev libjpeg62-dev libpng12-dev



04. RubyGems 설치하기

      - 이번에는 조금은 난감한 RubyGems를 설치해보자.
      - http://rubygems.org/

      - 버전 호환성을 보면 1.7 버전 이하를 요구하는데, 현재 최신 버전은 1.8.21 이다.
      - 그런데, 홈페이지를 아무리 뒤져도 이전 버전을 확인할 수가 없다.
      - 그래서 Github를 뒤져보게 되었다.
      - https://github.com/rubygems/rubygems

      - 여기에서 branches를 찾아보자.
      - https://github.com/rubygems/rubygems/branches

      - 1.7 버전을 선택하고 ZIP 경로 확인!


 $ wget https://nodeload.github.com/rubygems/rubygems/zipball/1.7
 $ mv ./1.7 ./rubygems-rubygems-v1.7.2-0-gb412f7a.zip

      - 압축을 풀고 설치를 하자.

 


 $ unzip ./rubygems-rubygems-v1.7.2-0-gb412f7a.zip
 $ cd ./rubygems-rubygems-v1.7.2-0-gb412f7a
 $ sudo ruby setup.rb
 $ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem


05. PostgreSQL 설치 + Subversion

      - Redmine을 설치할 때에는 DB가 필요한데, 대부분의 사람들이 MySQL을 사용한다.
      - 하지만, 개인적인 취향으로는 PostgreSQL을 좋아한다.
      - MySQL이 Oracle에 팔린 뒤로 조금은 기피하기 때문이다.
      - 물론 성능상으로도 PostgreSQL이 떨어지지도 않는다!

      - 소스코드로 설치할 수도 있지만, 그냥 apt-get 패키지로 설치했다.
      - 설치하는 김에 subversion도 같이 설치했다. (redmine 소스 코드 받을 때 사용)

 $ sudo apt-get install postgresql subversion


06. Rails, i18n, rack, fastthread, postgres, pg 설치하기

      - Rails v2.3.14 설치하기
      - i18n v0.4.2 설치
      - rack v1.1.1 설치
      - fastthread, postgres, pg 설치

 $ sudo gem install -v=2.3.14 rails
 $ sudo gem install -v=0.4.2 i18n
 $ sudo gem install -v=1.1.1 rack
 $ sudo gem install fastthread
 $ sudo gem install postgres
 $ sudo gem install pg


07. ImageMagick

      - redmine에서 옵션으로 요구하는 ImageMagick 를 설치해보자.
      - 이게 버전이나 설치 호환성을 따지는데, 정확한 정답은 아직 모르겠다. 그냥 막 되는대로~ ^___^

      - http://www.imagemagick.org/

      - 사전에 몇 가지 패키지를 더 설치해보자.

 $ sudo apt-get install librmagick-ruby1.8 libmagickwand-dev
 $ sudo gem install rmagick

      - 이제는 ImageMagick source code를 다운 받고  압축을 풀자.


 $ wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
 $ tar zxvf ./ImageMagick.tar.gz

      - 이제는 설치작업을 하자.


 $ cd ./ImageMagick-6.7.6-1
 $ ./configure
 $ make
 $ sudo make install


08. passenger 설치

      - Redmine의 웹서비스 제공을 위해서 passenger를 설치하자
      - http://rubyforge.org/projects/passenger

      - 다운로드 받고 이어서 설치를 하자

 


 $ wget http://rubyforge.org/frs/download.php/75548/passenger-3.0.11.tar.gz
 $ tar zxvf passenger-3.0.11.tar.gz

 


 $ cd passenger-3.0.11/
 $ cd ./bin/
 $ sudo ./passenger-install-nginx-module

→ [Enter]

   - 설치 과정 중에 선택하는 화면에서는 '1'번을 고르면 된다

 


→ [ 1 ] → [ Enter ] 계속...

   - 실행을 위해서 스크립트 파일을 만들어야 한다


 $ sudo nano /etc/init.d/nginx

→ 내용은 아래 별도

 $ sudo chmod +x /etc/init.d/nginx
 $ sudo update-rc.d -f nginx defaults

#!/bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

PATH=/opt/nginx/sbin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/nginx/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /opt/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /opt/nginx/logs/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /opt/nginx/logs/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /opt/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
          echo -n "Reloading $DESC configuration: "
          start-stop-daemon --stop --signal HUP --quiet --pidfile     /opt/nginx/logs/$NAME.pid \
              --exec $DAEMON
          echo "$NAME."
          ;;
      *)
            N=/etc/init.d/$NAME
            echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
            exit 1
            ;;
esac
exit 0


09. redmine 다운로드

      - 이제 우리의 주인공 redmine을 설치하기 위한 준비는 끝났다!
      - redmine을 다운로드 받고 설치하자
 


 $ cd /srv/www/redmine.whatwant.com/
 $ svn co http://redmine.rubyforge.org/svn/trunk redmine


10. postgresql 설정하기

      - redmine을 위해 계정도 생성해주고 데이터베이스도 생성해주자

      - 우선 postgres 계정으로 변경 후 postgresql에 접속하자
      - 더불어 redmine 계정도 생성하고 redmine 데이터베이스도 생성해주자
 


 $ sudo su - postgres
 $ psql

 # CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'redmine' NOINHERIT VALID UNTIL 'infinity';
 # CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine TEMPLATE=template0;

 # \q

 $ exit


11. database 설정값 등록

      - redmine에게 database 정보를 알려주자


 $ cd /srv/www/redmine.whatwant.com/redmine
 $ nano ./config/database.yml

 $ chmod 600 ./config/database.yml

      - 파일 내용은 아래와 같이 만들어주면 된다

production:
        adapter: postgresql
        database: redmine
        host: localhost
        username: redmine
        password: redmine
        encoding: utf8
        schema_search_path: public

      - 추가로 몇 가지 작업을 더 해야한다. (sqlite3를 사용하지는 않는데, 의존성 때문에 필요하다)


 $ sudo apt-get install sqlite3 libsqlite3-dev
 $ sudo bundle install --without development test rmagick mysql sqlite3
 $ RAILS_ENV=production rake config/initializers/session_store.rb
 $ RAILS_ENV=production rake db:migrate
 $ RAILS_ENV=production rake redmine:load_default_data
 → ko


12. redmine 설정

      - 이제 마무리 단계다.


 $ sudo adduser redmine
 $ cd /srv/www/redmine.whatwant.com
 $ sudo chown -R redmine.redmine *
 $ cd ./redmine/
 $ sudo chmod -R 755 files/ log/ tmp/ public_assets/



13. nginx conf

 

      - 웹서비스를 위한 환경 설정을 하자.

 

  

  $ sudo nano /opt/nginx/conf/nginx.conf

   → user redmine;

 

 

      - 이제는 웹 서비스 관련된 사항들에 대해서 포함하자

  

 

 http {
    passenger_root /srv/install/redmine/passenger/passenger-3.0.11;
    passenger_ruby /usr/bin/ruby1.8;

 


        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}

        access_log /srv/www/redmine.whatwant.com/redmine/log/access.log;
        error_log /srv/www/redmine.whatwant.com/redmine/log/error.log;

        passenger_enabled on;
        root /srv/www/redmine.whatwant.com/redmine/public;

        location ~* \.(ico|jpg|gif|png|css|js|swf|html)$ {
           if (-f $request_filename) {
              expires max;
              break;
           }
        }


      - 이젠 nginx를 시작하고 redmine을 확인하자!

 

 

 

 $ sudo /etc/init.d/nginx start 


      - 웹페이지를 열어서 'localhost' 주소로 들어가면 위 스크린샷과 같이 뜨면 성공이다~!!!

 

      - 관리자 초기 계정은 'admin / admin' 이다.




기타 세부 설정은 나중 기회에~ ^^


 

반응형

+ Recent posts