최신 버전의 Redmine을 한 번 사용해보고 싶어서 다시 한 번 도전을 해보련다.



01. Download & Checkout

     - 결과만 다운로드 받고 그래도 되지만, 최근 git에 꽂혀 있는 관계로 git clone 받아보려 한다.
     - 그리고, 2.1.0 tag로 checkout을 수행하면 된다.

$ git clone https://github.com/redmine/redmine.git
$ git checkout 2.1.0



02. 버전 맞추기

   - Rails 버전만 3.2.8로 신경쓰면 된다.

 Redmine  Supported Ruby  Required Rails  Supported Rack  Supported RubyGems
 2.1.0  ruby 1.8.7, 1.9.2, 1.9.3, jruby-1.6.7  Rails 3.2.8  ?  RubyGems <= 1.8



03. 기본 패키지 + Ruby 설치

   - 여전히 1.9.3 버전은 설치가 이상해서 1.9.1 버전 기준으로 기본 패키지를 설치했다.

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



04. Rubygems 설치

   - http://rubygems.org/ 사이트를 통해 최신 버전 확인 후 설치 진행하자.

$ cd /srv/install/rubygems/
$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz
$ tar zxvf ./rubygems-1.8.24.tgz
$ cd rubygems-1.8.24/
$ sudo ruby setup.rb



05. PostgreSQL 설치 및 설정

     - 개인적 취향이지만 객관적으로도 꽤 괜찮은 database를 설치하자.
     - 그리고 나서 사용할 계정과 데이터베이스를 만들자.

$ sudo apt-get install postgresql

$ sudo su - postgres
$ psql

# CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
# CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
# \q



06. ImageMagick

     - rmagick 설치하기

$ sudo apt-get install librmagick-ruby libmagickwand-dev
$ sudo gem install rmagick



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

      - 기타 필요한 것들을 설치해보자.

$ sudo gem install -v=3.2.8 rails
$ sudo gem install -v=0.4.2 i18n
$ sudo gem install fastthread
$ sudo gem install postgres
$ sudo gem install bundler



08. passenger (nginx) 설치

     - http://rubyforge.org/projects/passenger 홈페이지를 통해 최신 버전을 다운로드 받아 설치하자.

$ wget http://rubyforge.org/frs/download.php/76398/passenger-3.0.17.tar.gz
$ tar zxvf ./passenger-3.0.17.tar.gz
$ cd ./passenger-3.0.17/
$ sudo ./bin/passenger-install-nginx-module


설치과정 중 나오는 화면에서는 [Enter] 와 [1]을 계속 선택하면 된다.


     - 설치가 끝나면 실행을 위한 스크립트 파일을 만들자.

$ sudo nano /etc/init.d/nginx


#!/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


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



09. redmine 셋업

     - 앞에서 다운로드 받은 파일을 이용해서 셋업을 진행하자.

$ cd /srv/www
$ ln -s /srv/install/redmine ./redmine
$ sudo adduser redmine
$ sudo chown -R redmine.redmine ./*
$ cd ./redmine
$ sudo chown -R redmine.redmine ./*



10. database 설정값 등록

     - redmine의 database 설정을 하자.

$ cd /srv/www/redmine
$ sudo nano ./config/database.yml

 

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


     - 주의 사항으로는 위의 파일 내용을 입력할 때에 Tab 말고 White-Space로 입력해야 한다.

$ sudo chown redmine.redmine ./config/database.yml
$ sudo chmod 600 ./config/database.yml




11. 추가 작업

     - 뭔가 또 해줘야 할 일들이 남았다.

$ cd /srv/www/redmine
$ sudo rake generate_secret_token
$ sudo RAILS_ENV=production rake db:migrate
$ sudo RAILS_ENV=production rake redmine:load_default_data
   → Select language [ko]
$ sudo mkdir tmp public/plugin_assets
$ sudo chown -R redmine:redmine files log tmp public/plugin_assets
$ sudo chmod -R 755 files log tmp public/plugin_assets



12. nginx

     - web으로 redmine을 보기 위해서 추가로 nginx 환경 설정을 하자.

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


user redmine;

...

http {
    passenger_root /srv/install/redmine/passenger/passenger-3.0.17;
    passenger_ruby /usr/bin/ruby1.9.1;

...

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

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

        passenger_enabled on;
        root /srv/www/redmine/public;

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

 

$ sudo /etc/init.d/nginx start




여기까지 진행하고 웹브라우저로 localhost에 접속을 하면 Redmine을 볼 수 있다.
초기 관리자는 admin/admin 이다.


앗싸~~~~~

반응형

Redmine에서 정말 유용하고 편하게 잘 사용하고 있는 기능 중 하나 "파일"
그런데, 웹으로 파일을 업로드를 하는 것이다보니, 용량(size)과 관련하여 이슈가 있다.


파일 업로드를 하다가 아래와 같은 에러메시지가 나올 때가 있다.


설정값보다 큰 사이즈의 파일을 업로드하고자 하면 발생하는 에러다.

Redmine에서는 아래와 같이 설정을 통해 파일의 용량 제한을 할 수 있다.


하지만, 이 설정은 웹서버의 설정 이후의 제한이다.
즉, Redmine에서 제아무리 용량 제한을 크게 설정했다고 하여도 nginx에서의 설정보다 큰 용량 업로드는 될 수 없다.


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

...
client_max_body_size 400M;
client_body_buffer_size 128k;
...

$ sudo /etc/init.d/nginx restart

이렇게 설정을 하면
파일 용량과 관련하여 이슈는 문제없이 해결할 수 있을 것이다~!!

반응형

'Development Tools > Redmine' 카테고리의 다른 글

Redmine 2.3.0 install in Ubuntu  (6) 2013.03.23
Redmine 2.1.0 install in Ubuntu  (0) 2012.09.29
Ubuntu apt-get repository proxy  (0) 2012.07.21
Redmine - git repository 연결하기  (1) 2012.07.21
Redmine 1.4.4 install in Ubuntu  (0) 2012.07.14

Ubuntu에서는 참으로 친절하게도 redmine을 패키지로 제공을 해준다.
하지만, 기본 환경에서의 redmine은 0.9.x 버전까지만 제공을 한다.

그렇다면 패키지로는 과거의 버전만 쓸 수 밖에 없을까?
아니다. 방법은 있다. redmine을 제공하는 apt-repository를 새로 추가하면 된다.


1. General

     - 일반적으로는 아래와 같이만 하면 모두 끝이다.

$ sudo add-apt-repository ppa:ondrej/redmine
$ sudo apt-get update
$ sudo apt-get upgrade



2. Proxy

     - 하지만, proxy를 쓰는 환경에서는 조금 다르다.

$ env | grep proxy

http_proxy=http://xxx.xxx.xxx.xxx:8080/
ftp_proxy=ftp://xxx.xxx.xxx.xxx:8080/
https_proxy=https://xxx.xxx.xxx.xxx:8080/

     - 이런 상황에서 repository를 추가하면 에러가 발생한다.

$ sudo add-apt-repository ppa:ondrej/redmine

Error reading https://launchpad.net/api/1.0/~ondrej/+archive/redmine: couldn't connect to host

     - [ add-apt-repository ] 명령은 proxy 환경에서 [ https_proxy ] 환경 설정값을 요구한다.
     - 그런데, 위에서 확인한 바와 같이 분명히 설정값이 되어있음에도 에러가 발생을 한 것이다.

$ export https_proxy=http://xxx.xxx.xxx.xxx:8080/
$ sudo -E add-apt-repository ppa:ondrej/redmine

Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

     - 이 부분은 버그가 아닌가 싶은데, [ https_proxy ]에 대한 값을 "http"로 변경을 한 것 뿐이다.
     - 그리고 임시로 설정한 환경 변수 값이 반영이 되게 하기 위해 [ sudo -E ]로 실행을 했다.

     - 이렇게 해서 업그레이드를 하면 편하게 ubuntu package 설치로 redmine의 최신 버전을 사용할 수 있다.
     - 그렇다고 해도 지금 현재 최신인 1.4.4 버전이 아니라 1.3.3 버전이지만 말이다.....

반응형

Redmine의 장점 중 하나가 바로 형상관리 도구와의 연계이다.
Git 역시 Redmine과 잘 연동이 된다.

하지만 환경 설정을 좀 해줘야 한다.


1. config/configuration.yml

     - git을 사용하고 싶으면 실행파일의 경로를 알려줘야 한다.


$ cd /srv/www/redmine.whatwant.com/redmine
$ sudo nano ./configuration.yml

# = Redmine configuration file
#

# ==== SMTP server at using TLS (GMail)
#
default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      tls: true
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
      authentication: :plain
      user_name: xxx@gmail.com
      password: "xxx"

  # Absolute path to the directory where attachments are stored.
  #
  attachments_storage_path: /srv/www/redmine.whatwant.com/files

  # Configuration of SCM executable command.
  #
#  scm_subversion_command:
#  scm_mercurial_command:
  scm_git_command: /usr/local/bin/git
#  scm_cvs_command:
#  scm_bazaar_command:
#  scm_darcs_command:

     - 윗 부분은 이메일 셋팅이고, 아랫부분이 형상관리 도구 경로를 명시해주는 부분이다.
     - git을 사용하기 위해서 [ scm_git_command: /usr/local/bin/git ] 부분을 명시해주면 되는 것이다.



2. 전체 설정 - 저장소

     - 위와 같이 설정을 해주면 이제 사용할 수 있다.


     - 관리자 계정 (admin)으로 로그인해서 관리 메뉴를 고르고 저장소 항목을 보면 위와 같은 화면을 볼 수 있다.
     - 설정이 안된 도구들은 사용할 수가 없다는 것을 알 수 있을 것이다.



3. Project 저장소

     - 그러면 이제 실제 프로젝트에서의 설정을 살펴보자.


     - 위와 같이 간편하게 설정할 수 있다.
     - "Main repository"와 "식별자" 부분이 있는 것은 하나의 프로젝트에 복수의 저장소를 사용하는 경우 때문이다.



4. Remote Repository

     - 그런데, Redmine과 Repository는 기본적으로 같은 Local에 있어야지만 된다.
     - 만약 별도의 서버에 존재한다면 mirror repository를 만든다던지 해서 결국 같은 local에 위치시켜야 한다.

     - 일반적으로 Redmine이 있는 서버에 다른 서버에 위치하고 있는 repository를 clone을 한다.
     - 그리고, crontab 등을 이용해서 동기화를 하여 사용하는 형식을 취한다.

$ git clone --mirror git@xxx.xxx.xxx.xxx:myrepository.git

$ git remote update

     - 위와 같이 하면 된다고 하지만, 실제 위와 같이 운용해보지는 않았다.



5. Authority

     - local에 위치한 repository를 위 스크린샷과 같이 경로만 적어주면 Redmine이 알아서 이해를 해야하는데...
     - 그게 생각처럼 바로 잘 되는 경우가 없다. 그 이유는 바로 권한 !!!


     - 지금 현재 필자가 구동하고 있는 Redmine은 ubuntu 패키지 설치로 apache2로 하고 있다.
     - 그래서 웹서버가 www-data 계정으로 구동되고 있다.
     - 따라서 Redmine에서 저장소를 보기 위해 접근하고 있는 것은 www-data 계정이다.

$ cd /srv
$ sudo chown -R git.www-data ./repositories

     - 여기에선 이 글을 보고 계신 분의 설정 상황에 많이 좌우된다.
     - 즉, 여기에 쓰여져 있는 내용을 참조해서 본인의 상황에 맞춰 잘 판단해서 적용해야 한다.

     - 현재 repository는 git 계정으로 gitolite를 활용하여 운용이 되고 있고,
     - 그래서 사용자가 접근하여 사용하는 모든 행위는 git 계정의 권한으로 이루어지고 있다.
     - 그리고 앞에서 설명한 바와 같이 redmine은 apache2의 www-data 계정으로 활동을 한다.

     - 그래서 위와 같이 repository 들의 소유권 중에서 그룹을 www-data로 전부 변경을 해버리자.
     - 기본적으로 그룹에게 읽기 권한은 주어져 있는 상태이기 때문에 redmine에서 저장소 접근이 된다.

     - 그런데, 여기에서 또 하나 고려해야 하는 것이 있다.
     - 지금 현재 상태에서는 접근이 잘 되지만,
     - 사용자가 push를 하게 되면 그 때 생성되거나 수정된 파일의 권한이 바뀌면서 redmine에서 저장소를 못 읽는다.

     - 그렇다면, 그냥 git 계정의 정체를 바꿔버리면 간단히 해결이 된다.
     - 즉, git 계정의 소속 그룹을 그냥 www-data로 바꿔버리는 것이다.

$ sudo usermod -g www-data git


     - 최신 버전은 commit의 흐름도 제일 왼쪽에 visual하게 보여주어서 더더욱 마음에 든다!!!!!



Redmine 사용자 분들에게 많은 도움이 되길 기원하며....
반응형


Redmine v1.3.2 설치에 대해서 예전에 포스팅을 했었다.

     - http://whatwant.tistory.com/364


오늘 개인적으로 만들고 있는 오래된 Mac-Mini 홈서버 만들기 놀이를 하던 중
Redmine을 설치하려고 하다보니 Redmine의 버전이 많이 올라서 업데이트를 해보기로 하였다.

기본적인 설치 과정은 위의 예전 포스팅을 참조하길 바란다.



01. 버전 확인하기


     - 2012.07.14 현재 Redmine의 최신 버전은 [ v1.4.4 ] 이다.
     - http://www.redmine.org/projects/redmine/wiki/Download

     - v2.x.x 버전은 plugin 호환성이 아직은 많이 떨어지기에 다음 기회에 살펴보겠다.



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


      - 가장 어려운 Ruby 형제들 버전 호환성 맞추기

 Redmine  Supported Ruby  Required Rails  Supported Rack  Supported RubyGems
 1.4.x  ruby 1.8.7, 1.9.2, 1.9.3, jruby-1.6.7  Rails 2.3.14  ?  RubyGems <= 1.8



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


      - 현재 1.9.3 버전대는 좀 이상해서 (개인적인 문제일 수도 있다. Mac-Mini가 PowerPC 인 관계로...)
      - 1.9.1 기준으로 설치를 했다.

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


 

04. RubyGems 설치하기


      - 홈페이지를 통해 최신 버전의 다운로드 경로를 확인하자.
      - http://rubygems.org/

 

$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz
$ tar zxvf ./rubygems-1.8.24.tgz
$ cd rubygems-1.8.24/
$ sudo ruby setup.rb



05. PostgreSQL 설치 + Git


      - database와 git을 설치하자.

$ sudo apt-get install postgresql


     - 사실 정확히 1.4.4 버전을 다운로드 받기 위해서는 git 설치는 필요없다.
     - 최신 버전을 다운로드 받고 싶은 경우에만 아래 포스팅을 참조해서 설치하면 된다.
     - http://whatwant.tistory.com/289


06. ImageMagick


     - rmagick 설치하기

$ sudo apt-get install librmagick-ruby libmagickwand-dev
$ sudo gem install rmagick



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


      - 기타 필요한 것들을 설치해보자.

$ sudo gem install -v=2.3.14 rails
$ sudo gem install -v=0.4.2 i18n
$ sudo gem install fastthread
$ sudo gem install postgres
$ sudo gem install bundler



08. passenger (nginx) 설치


      - Redmine의 웹서비스 제공을 위한 passenger의 최신 버전을 확인하자.
      - http://rubyforge.org/projects/passenger

$ wget http://rubyforge.org/frs/download.php/76249/passenger-3.0.13.tar.gz
$ tar zxvf ./passenger-3.0.13.tar.gz
$ cd ./passenger-3.0.13/
$ sudo ./bin/passenger-install-nginx-module

 

설치과정 중 나오는 화면에서는 [Enter] 와 [1]을 계속 선택하면 된다.

 

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

  

$ sudo nano /etc/init.d/nginx

 

#!/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

 

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



09. redmine 다운로드


     - 그동안 준비하느라 수고가 많았다.
     - 이제 본격적으로 redmine을 다운로드 받아서 설치를 해보자.
 

$ wget https://github.com/redmine/redmine/tarball/1.4.4 -O ./redmine-1.4.4.tar.gz


     - redmine의 계정과 경로를 정리해보자.

$ cd /srv/www/redmine.whatwant.com/
$ ln -s /srv/install/redmine/redmine-redmine-3cde1f6 ./redmine
$ sudo adduser redmine
$ sudo chown -R redmine.redmine ./*
$ cd ./redmine
$ sudo chown -R redmine.redmine ./*


 
10. postgresql 설정하기


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

$ sudo su - postgres
$ psql

 

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


     - 위와 같이 하면 redmine 계정의 password가 redmine이 되어야 하는데, 문제가 있는 경우,

# alter user redmine with password 'redmine';


     - 위와 같이 특정 계정의 패스워드를 변경할 수도 있다.


11. database 설정값 등록


      - database 설정을 하자.

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

  

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


     - 위 파일을 편집할 때 앞의 공백은 스페이스바로 띄워야 한다. Tab을 사용하면 에러 발생

$ sudo chown redmine.redmine ./config/database.yml
$ sudo chmod 600 ./config/database.yml

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

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

 

12. redmine 설정

      - 이제  권한을 정리해보자.


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

 

 

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를 시작하자.

$ sudo /etc/init.d/nginx start

 

     - 로컬에서라면 "localhost"로, 아니라면, 설치한 PC의 IP로 접속을 하면 된다.
     - 잊었을까봐 또 다시 언급을 하면... 관리자 초기 계정은 'admin / admin' 이다.

 

헥헥~ 너무 힘들다.
그래도 Redmine 초기화면이 떴을 때의 그 기쁨은~!!!

반응형

Eclipse를 사용하여 개발을 하는 경우,
Task 관리를 위한 방법으로 종종 등장하는 것이 "Mylyn"이다.


▷ 공식 사이트
     - http://www.eclipse.org/mylyn/

▷ 사용자 가이드
     - http://wiki.eclipse.org/index.php/Mylyn_User_Guide





1. Install

     - 최신 버전의 Eclipse라면 Mylyn이 기본적으로 설치되어 있다.
     - 하지만, 설치가 되어있지 않거나 하는 경우라면...


     - [ Help - Install New Software... ]를 선택하고,


     - "Work with" 항목을 살펴보면, 필자의 경우에는 Mylyn 항목이 있다. 주소를 잘살펴보길...


     - 뭔진 모르지만 일단 Mylyn 항목이니 전부 선택해버리자.
     - 그리고, Next..... Accept.... Finish... 쭉~ 쭉~


     - 그리고 설치가 끝나면 Eclipse 재시작을 해주면 모두 끝~







2. Overview

     - 간단히 어떻게 사용하는지 알아보자.


     - [ Window → Show View → Task List ]를 실행하면 된다.


     - 아무것도 없는 Task List 창에서 오른쪽 버튼을 누르고 [ New → Task ]를 선텍해보자.

 
     - 일단은 "Local"로 해놓고 'Finish'를 눌러보자.


     - Task 내용을 입력할 수 있는 화면이 나온다.
     - 화면 각각의 항목들에 대한 설명은 여기에선 생략하겠다.


     - 저장을 하면 위와 같이 등록이 된다.
     - 카테고리도 만들 수 있고, 다양하게 Task를 다룰 수 있다.



 
Eclipse에서 자체적으로 Task를 관리해도 괜찮지만,
정말 의미가 있는 것은 다른 도구들과 연결이 되었을 때 그 진가를 발휘하게 된다.

다음 포스팅에서는 개인적으로 너무나 좋아하는 Redmine의 Task와 연결을 해보도록 하겠다.

반응형

회사에서도 개발 프로세스 하면 제일 먼저 언급되는 것이 바로 Agile(애자일)이다.

개발자들이 너무 많이 요청을 해서인지 공식적인 개발 프로세스 중 하나로 애자일이 포함되기는 하지만,
실제 애자일을 적용하여 진행하는 과제는 회사에서 그리 많지 않다.

그 이유는 바로 윗분들에게 보고를 해야하는 현실과 맞지 않는 부분이 많기에....^^
(물론 그 외에도 많은 다양한 이유가 있지만)


뭐 여하튼 현실 이야기는 그렇다치고...


애자일 프로세스를 지원하기 위한 도구 중 한가지로 많이 언급되는 것이 바로 Redmine이다.
뭐 딱히 애자일을 지원하기 위해 뭔가가 있는 것은 아니지만, 뭐 어떻게 보면 그렇기도 하고.....^^

사실 애자일 프로세스를 지원하기 좋은 도구는 IBM RTC 라는 도구이기는 하다.
하지만, 고가의 도구이면서 실제로 써보면... 음... 뭐라고 해야할지... 음 미묘하게... 음...

뭐 여기에서 이야기하려는 것과는 조금 벗어나니 다시 원위치로 돌아와서~

Redmine의 버전을 잘 이용하면 애자일의 스프린트를 적용해서 어찌어찌 어떻게 할 수는 있다.



하지만, 애자일을 위해 조금 더 지원되는 것이 있으면 좋겠다라고 생각했는데,
역시나 Plugin으로 제공이 된다.

그것이 바로 "Redmine-Scrumbler"



1. clone

     - 일반적인 플러그인 설치 과정과 같다.


$ sudo su - redmine


     - [ Redmine ]을 설치했던 계정으로 접속을 하자.


$ cd /srv/www/redmine.whatwant.com/redmine/
$ git clone git://github.com/256MbTeam/Redmine-Scrumbler.git vendor/plugins/redmine_scrumbler


     - [ Redmine ]이 설치되어있는 디렉토리로 이동 후 clone 하면 된다.
     - 경로는 [ ./vendor/plugins/redmine_scrumbler ] 이다. 디렉토리명 변경하면 에러~



2. migrate

     - database 셋업을 해야한다.


$ rake db:migrate:plugin NAME=redmine_scrumbler


   - 그런데, 위 스크린샷과 같이 에러가 발생했다.
   - 기본적으로 database가 'development'로 잡혀있어서 그렇다.


$ rake db:migrate:plugin NAME=redmine_scrumbler RAILS_ENV=production


     - 'production'으로 database가 되어있다면 위와 같이 해주면 된다.



3. execute

     - 이제 Redmine을 재시작해서 확인하면 된다. Redmine 재시작의 제일 깔끔한 방법은 Linux의 재부팅 ^^
     - 그리고 Redmine을 접속해보면 된다.


     - 관리 메뉴에서 보면 위와 같이 "Scrumbler" 항목이 추가되어있는 것을 확인할 수 있을 것이다.


     - 막상 눌러보면 위와 같이 썰렁한 내용만 나온다.
     - "Scrum Points"로 줄 수 있는 점수들을 할당해주는 것이다.

     - 그러면 나머지 사항들은 어디에서 볼 수 있을까!?



4. Projects

     - 프로젝트의 항목에서 그 진가를 발휘한다.


     - 기존에 있던 프로젝트로 가서 '설정'→'모듈'을 들어가보면 위 스크린샷과 같다.
     - [ Redmine scrumbler ] 항목을 체크해보면...


     - 위와 같이 메뉴에 [ Scrumbler ] 항목이 추가된 것을 볼 수 있을 것이다.


     - 눌러보면 또다시 썰렁한 화면만 나온다.



5. Sprint

     - Sprint는 어떻게 만들까?


     - Project의 '설정'→'버전'에서 추가해주면 된다.


     - [ Scrumbler ] 메뉴의 "Backlog" 화면의 오른쪽 'Sprint'에서 오른쪽 끝의 [ + ] 버튼을 눌러서 추가해주어도 된다.


     - 제일 좋은 것은 그냥 "새 버전"으로 만드는 것이 깔끔하긴 하다.


     - 그런데, 이렇게 새로 추가를 해도 위와 같이 [ Scrumbler ] 메뉴에서는 아무런 변화가 없다.


     - [ Scrumbler ]의 "설정"을 누르면 위와같이 보이기는 한다.


     - 위 화면을 잘 보면 상태가 "Planning"인 것을 확인할 수 있을 것이다.


     - "All Sprints"를 눌러도 아무것도 안보인다.


     - 그럼 "새 일감 만들기"를 하면 어떻게 될 것인가?

     - 그런데, 위 화면을 보면 못보던 아이들이 추가된 것을 알 수 있을 것이다. [ Scrum Points ]


     - [ Scrumbler ]의 "Backlog"를 누르면 위와 같이 나타난 것을 볼 수 있을 것이다.


     - 왼쪽 "Backlog"의 'New Issue" 눌러서 일감을 추가할 수도 있다.
     - 하지만, 위에서 말한 바와 같이 "새 일감 만들기"로 만드는 것이 이로울 것 같다는...


     - 여기에서 드래드&드랍 기능도 지원한다.



6. 애자일

     - 여기에서 지켜야할 것들을 몇 가지 발견했다.

     - 일감을 만들 때엔 우선 Backlog에다가 만든다 (목표 버전 또는 Sprint에 할당하지 않으면 된다)
     - Sprint는 한 번에 하나만 Open 할 수 있다. ( Planning → Open → Close )
     - Sprint가 Planning인 상태에서 Backlog에 있는 이슈들을 할당을 하고,
     - 다 추가했으면, 해당 Spirnt를 Open해서 진행하면 된다.




보다 자세한 정보는 아래 링크에서 확인하면 된다.
     - https://github.com/256MbTeam/Redmine-Scrumbler

애자일 프로세스를 사용한다면 한 번쯤 적용을 심각히 고려해봐도 괜찮을 것 같다.

애자일에 대한 이해가 있어야 이 플러그인을 제대로 사용할 수 있다.
방법을 벗어나면 에러메시지를 뿌려댄다.

나름 잘 만들었지만, 예외 사항에 대한 처리는 아직 조금 부족한 것 같다.

반응형

Ubuntu 10.04 64bit를 사용하는 Server에서 Redmine을 패키지로 설치하여 사용하는데...

금일 갑작스레 Redmine이 뜨지를 않는 것이다.
웹으로 접속을 하면 아래와 같은 화면만 보여졌다.

Internal error

An error occurred on the page you were trying to access.
If you continue to experience problems please contact your redMine administrator for assistance.

Back



Ubuntu에서 패키지로 제공하는 버전은 Redmine 0.9.3 이다.


대체 뭔일인가 싶어서 아파치의 에러메시지를 살펴보니 아래와 같았다.

 $ cat /var/log/apache2/error.log

NoMethodError (undefined method `[]' for nil:NilClass):

    /app/models/setting.rb:100:in `value='

    /vendor/rails/activerecord/lib/active_record/base.rb:2589:in `send'

    /vendor/rails/activerecord/lib/active_record/base.rb:2589:in `attributes='

    /vendor/rails/activerecord/lib/active_record/base.rb:2585:in `each'

    /vendor/rails/activerecord/lib/active_record/base.rb:2585:in `attributes='

    /vendor/rails/activerecord/lib/active_record/base.rb:2285:in `initialize'


위 에러에 대해서 검색을 해보니 아래와 같은 내용을 확인할 수 있었다.

   - http://serverfault.com/questions/366406/redmine-suddenly-stopped-working-how-to-troubleshoot

물론 위 사이트에서 친절하게도 문제를 해결할 수 있는 방법도 알려주었다.

   - http://www.redmine.org/projects/redmine/repository/revisions/8909/diff/trunk/app/models/setting.rb



정리를 하자면,
Ubuntu에서 보안 문제로 인해서 Ruby를 업데이트를 해버렸는데 이로 인해서 Redmine이 에러를 내뿜는 것이다.

이게 문제가 되는 부분이 바로 저 위 에러메시지에서 알려주는 바와 같이 "setting.rb" 파일이다!
그러므로 즉, 이 파일만 수정을 해주면 해결이 가능하다.

 $ sudo nano /usr/share/redmine/app/models/setting.rb

170 170     raise "There's no setting named #{name}" unless @@available_settings.has_key?(name)
171 171     setting = find_by_name(name)
172          setting ||= new(:name => name, :value => @@available_settings[name]['default']) if @@available_settings.has_key? name
172          unless setting
173             setting = new(:name => name)
174             setting.value = @@available_settings[name]['default']
175          end
176          setting
173 177   end
174 178 end

여기까지...
반응형

+ Recent posts