본문 바로가기
OS/Linux

[CentOS] Redmine 설치 + nginx + Passenger

by dev.altkey 2017. 1. 11.


* 레드마인?

레드마인은 프로젝트 진행시 Task 관리 등을 관리해주는 프로젝트 매니지먼트를 해주고있습니다. 간트차트또한 지원이 되지만 문서 작업용으로는 많이 부족합니다만 전반적인 프로세스를 한눈에 알기 쉽기때문에 간혹 쓰이곤 합니다.


* 설치전 필수 설치사항

PostgreSQL 9.x 버전 (설치법)


* 설치

설치전 먼저 레드마인은 Ruby 라는 언어로 이루어져있습니다. 그렇기때문에 ruby 와 필수 패키지들을 먼저 설치하도록 하겠습니다.


yum -y install zlib-devel curl-devel openssl-devel libyaml-devel openssl-devel readline-devel

 

확인창에는 물론 y y y 입니다.


그리고 루비를 설치해 보도록 하겠습니다. 루비는 다운로드를 하여 설치하도록 하겠습니다. 

루비 공식홈페이지(링크) 로 가시면 레드마인이 지원하는 최대 버전이 2.3 버전이니 2.3 버전대 링크주소를 복사해 옵니다.


다운로드를 위해 tmp 폴더로 이동한뒤 다운하도록 하겠습니다.


cd /tmp
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.3.tar.gz


압축을 풀겠습니다.


tar -xvf ruby-2.3.3.tar.gz


폴더로 들어가 make로 빌드하겠습니다.


cd ruby-*

./configure --disable-install-doc
make
make install
make clean


정상적으로 설치가 되었는지 버전정보를 확인해 보도록 하겠습니다.


ruby -v


아래 버전정보가 뜨면 정상적으로 설치가 된것입니다.


번들러를 먼저 설치해 보도록 하겠습니다.


gem install bundler


설치가되면 위 이미지처럼 나오게 됩니다.


상위폴더로 가서 redmine 을 다운로드 하도록 하겠습니다.


cd ..


레드마인 다운로드 페이지(링크) 로 가셔서 마찬가지로 tar.gz 파일을 가져옵니다. 포스팅 기준으로는 3.3.2 버전이 최신입니다.


wget http://www.redmine.org/releases/redmine-3.3.2.tar.gz


압축을 풀도록 하겠습니다.


tar -xvf redmine-3.3.2.tar.gz


폴더를 이동시키고 폴더로 이동하겠습니다.


mv redmine-3.3.2 /usr/local/src/redmine


레드마인 DB 환경설정을 하도록 하겠습니다. 환경설정 예시 파일을 복사한뒤 설정파일을 열겠습니다.


cp config/database.yml.example config/database.yml
vi config/database.yml



설정은 위와같이 해주시면 되겠습니다. 


이제 데이터베이스 접속을 하여 유저생성및 DB 생성을 하도록 하겠습니다.


su - postgres
psql


암호 입력하라는 창이 뜰때는 포스트그래스큐엘 암호 설정했던 암호로 치시면 됩니다.


psql 유틸 상태에서 다음과같은 SQL 구문을 한줄한줄 입력해주시면 됩니다.


CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'redmine' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
GRANT ALL PRIVILEGES ON DATABASE redmine TO redmine;


실행이 전부 완료되었으면 나가도록 하겠습니다.


\q
exit


그리고 번들러를 설치하기 이전에 번들러 설정을 수정하도록 하겠습니다.


※ pgsql-9.x 버전대로 수정해서 사용 가능합니다. 포스팅 순서로는 포스트그래스큐엘을 9.6 버전으로 설치하였기에 아래처럼 설정합니다.

bundle config build.pg --with-pg-config=/usr/pgsql-9.6/bin/pg_config


그리고 번들 인스톨을 하겠습니다.


bundle install --without development test rmagick


번들 설치가 완료되었으면 시크릿 토큰 세션을 설치하도록 하겠습니다.


bundle exec rake generate_secret_token


데이터베이스 마이그래이션을 실행합니다.


RAILS_ENV=production bundle exec rake db:migrate


데이터베이스 기본값 설정과 레드마인 언어를 설정합니다.


RAILS_ENV=production REDMINE_LANG=ko bundle exec rake redmine:load_default_data


그리고 폴더 권한 설정을 하도록 하겠습니다.


mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R redmine:redmine files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets


레드마인 컨텍스트 패스 설정해 보도록 하겠습니다. 파일을 열도록 하겠습니다.


vi conf/environment.rb



위 이미지와 같이 저 부분을 추가해 주신뒤 저장후 종료 하시면 됩니다.


※ 패신저로 하는 이유?

첫번째로는 nginx 와 연동이 가장 쉽기때문입니다.

두번째로는 기본적으로 Redmine 에서 제공하는 webrick 은 개발목적의 서버입니다.

세번째로는 두번째와 이어지지만 접속 속도때문입니다.


이제 Passenger 로 nginx 로 같이 설치해 보도록 하겠습니다.


※ 만약 이전 포스팅 [CentOS] nginx 설치 (링크) 로 설치하셨던 분들은 삭제후 진행하도록 하겠습니다.

yum remove nginx


먼저 gem install 부터 해준뒤 패신저 모듈을 설치하겠습니다.


gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module




엔터로 진행하시다보면 이 화면이 나오는데 키보드로 "!" 입력후 Ruby 만 스페이스바로 선택후 ( 선택이 되면 * 로 표시됨 ) 엔터를 칩니다.





다음 메뉴에는 1번을 입력후 엔터를 칩니다.





이 부분에서는 그냥 엔터로 진행하겠습니다.





그러다보면 컴파일도 하며 진행이 됩니다. 그리고 위 이미지처럼 나오면 설치가 완료가 되었습니다.


이제 nginx 설정을 하도록 하겠습니다. 설정을 위해 폴더로 이동을 하도록 하겠습니다.


cd /opt/nginx/conf/


일단 메인 nginx 파일을 수정하겠습니다.


vi nginx.conf



#gzip on; 밑에 include host/*.conf; 와 charset 을 utf-8 로 수정합니다.


그리고 저장후 나옵니다.


폴더를 하나 생성한뒤 그 폴더내에 파일을 하나 만들도록 하겠습니다.


mkdir host
cd host
vi redmine.conf


파일안에 아래 정보들을 입력합니다.


   server {
        listen       80;
        server_name  localhost;
	
	location /redmine {
   	     root /usr/local/redmine/public;
  	     passenger_enabled on;
	}

        client_max_body_size      10m; # Max attachemnt size

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }


그리고 저장후 나옵니다.


nginx 를 자동실행 및 설정할 수 있도록 service 에 등록하도록 하겠습니다.


cd /usr/lib/systemd/system
vi nginx.service


파일안에는 아래 내용을 입력해주시면 되겠습니다.


[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target


데몬 재로드와 함께 부팅시 등록 그리고 지금 시작해보도록 하겠습니다.


systemctl daemon-reload
systemctl enable nginx
systemctl start nginx


시작이 되었으면 한번 아이피를 치고 들어가보도록 하겠습니다.


주소는 예로 http://localhost/redmine 입니다.



위와같은 화면이 나온다면 정상적으로 설치가 되었습니다.



* 레퍼런스

How to Install Redmine 3.2 with Nginx on Ubuntu 16.04 (howtoforge.com/tutorial/how-to-install-redmine-with-nginx-on-ubuntu/)

Installing Redmine (redmine.org/projects/redmine/wiki/RedmineInstall)

HowTo Install Redmine in a sub-URI (redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_in_a_sub-URI)


'OS > Linux' 카테고리의 다른 글

[CentOS] MongoDB 설치  (0) 2017.06.27
[CentOS] SonarQube 설치  (0) 2017.01.10
[CentOS] nginx 설치  (0) 2017.01.10
[CentOS] PostgreSQL 설치  (0) 2017.01.10
[CentOS] Jenkins 설치  (0) 2017.01.09

댓글