티스토리 뷰

Computer/Software

Redmine 3 설치

zepinos 2019. 6. 25. 17:18
반응형

DB(MySQL) 생성

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'%' IDENTIFIED BY '***';
GRANT ALL PRIVILEGES ON redmine.
TO 'redmine'@'%';

가급적 DB 생성 시 character set 을 utf8 로 하세요. byte 크기 때문에 DB 초기화 때 오류가 발생할 수 있습니다.

 

redmine 소스 다운로드 및 압축 해제

4.x 은 지원되지 않는 플러그인이 많아서 3.x 로 설치하였습니다.
글을 작성하는 시점에 3.x 최신버전은 3.4.10입니다.

$ cd /data
$ sudo curl -O http://www.redmine.org/releases/redmine-3.4.10.tar.gz

다운로드 받은 소스를 압축 해제합니다.

$ sudo tar zxvf redmine-3.4.10.tar.gz

 

ruby 패키지 설치

CentOS 7 공식 저장소에서 기본 제공되는 ruby 는 2.0 버전입니다. redmine 의 많은 플러그인들이 2.4 이상을 요구하는 경우가 많아 기본 제공되는 ruby 2.0 을 사용하지 않고 2.4 을 이용하기 위해 SCL 저장소를 설치하여 2.4 버전을 설치합니다.
검색을 하면 rbenv, rvm 을 이용한 설치 방법이 많이 소개되어 있는데, 이 방법들은 소스를 내려받아 사용해야 하기 때문에 소스 컴파일 없이 패키지로만 설치하기 위해 SCL 을 이용하는 방식을 소개합니다.

 

먼저 SCL 저장소를 설치합니다.

$ sudo yum install centos-release-scl

이후 ruby 2.4 을 설치합니다.

$ sudo yum install rh-ruby24-ruby rh-ruby24-ruby-devel rh-ruby24-rubygem-bundler

설치 후 bash 에 ruby 환경 설정(임시) 후 ruby 버전을 확인해봅니다.

$ scl enable rh-ruby24 bash
$ ruby -v

부팅 시 자동으로 적용하기 위해 아래 명령 실행(EOF 까지 한 번에 입력)

$ sudo bash <<EOF
echo '#!/bin/bash

source /opt/rh/rh-ruby24/enable
export X_SCLS="scl enable rh-ruby24 'echo $X_SCLS'"' > /etc/profile.d/rh-ruby24.sh
EOF

redmine 설치 도중 ruby 의 경로를 /usr/bin/ruby 에서 찾는 경우가 있습니다. 이를 해결하기 위해 해당 위치에 심볼릭 링크를 생성해줍니다. (위 스크립트가 이 작업으로 인해 필요없을 수도 있습니다)

$ sudo ln -s /opt/rh/rh-ruby24/root/usr/bin/ruby /usr/bin/ruby
$ sudo ln -s /opt/rh/rh-ruby24/root/usr/lib64/libruby.so.2.4 /usr/lib64/libruby.so.2.4

 

기타 프로그램 설치

git, subversion, ImageMagick(이미지 변환), MySQL devel(=MariaDB devel), 기타등등, 많은 프로그램들이 redmine 운영 시 필요합니다. 이 프로그램들을 한 번에 설치해줍니다.

$ sudo yum install git subversion ImageMagick mysql-devel ImageMagick-devel gcc-c++ libcurl-devel

 

redmine 설정에 DB 연결정보 추가

redmine 에서 사용할 DB 의 연결정보를 입력합니다.

$ sudo cp /data/redmine-3.4.10/config/database.yml.example /data/redmine-3.4.10/config/database.yml
$ sudo vi /data/redmine-3.4.10/config/database.yml

database.yml 파일의 production 항목에 DB 연결 정보를 기입합니다.

production:
adapter: mysql2
database: redmine
host: (database address/ip)
username: redmine
password: "****"
encoding: utf8

 

redmine 설치

redmine 은 ruby 의 bundler 을 이용해 프로그램에 필요한 라이브러리를 자동으로 내려받아 설치합니다. bundler 에 필요한 라이브러리를 다운로드 받고 세션 토큰을 생성해줍니다.

$ cd /data/redmine-3.4.10
$ bundle install --without development test
$ bundle exec rake generate_secret_token

 

 

redmine DB 구성

redmine 에서 이용할 DB 를 마이그레이션 합니다.

$ cd /data/redmine-3.4.10
$ RAILS_ENV=production bundle exec rake db:migrate

기본 데이터를 적재합니다.

$ cd /data/redmine-3.4.10
$ RAILS_ENV=production bundle exec rake redmine:load_default_data

적재 중 언어를 선택하라는 질의가 나올 경우 ko 를 입력하여 한국어를 기본언어로 지정할 수 있습니다. 물론 추후 설정에서 변경할 수 있습니다.

 

Web Server 설정

ruby 을 Web 으로 서비스하기 위해 nginx 와 passenger 가 필요합니다.

여기서 passenger 와 nginx 는 ruby gem 으로 설치하는 방법을 이용하겠습니다. 아마도 yum 으로 설치하려고 하면 기본 제공되는 ruby 2.0 와 연동하려고 할 것으로 예상됩니다.

먼저 passenger 을 설치합니다.

$ mkdir /opt/gem
$ chown centos:centos /opt/gem
$ gem install passenger -i /opt/gem

설치 후 passenger module 을 nginx 설치하고 설정에 passenger module 을 활성화해주는 스크립트를 삽입해주는 명령을 실행해야 합니다.
보통 일반계정일 경우 자신의 홈 디렉토리, root 일 경우 /usr/local/share/gems 이하에 존재할 것으로 예상됩니다.

$ sudo find / -name "passenger-install-nginx-module" -print

nginx 는 passenger 에서 제공하는 스크립트를 이용해서 설치합니다.
설치되는 위치는 기본값인 /opt/nginx 을 유지하도록 합니다.

$ sudo mkdir /opt/nginx; sudo chown centos:centos /opt/nginx
$ passenger-install-nginx-module

스크립트의 질문에 모두 기본값으로 대답하고 설치를 마무리합니다.

 

nginx 설정 변경

passenger 을 활성화하고 redmine 이 설치된 디렉토리를 nginx 에 설정합니다.

$ vi /opt/nginx/conf/nginx.conf

파일 내용 중 http 섹션에 자동 추가된 passenger_root, passenger_ruby 설정을 살펴봅니다.
두 값 아래에 include 을 아래와 같이 추가하여 추가 설정들을 따로 관리할 수 있게 합니다.

include host/*.conf;

이후 host/ 디렉토리를 생성하고 remine 을 위한 설정파일인 redmine.conf 파일을 생성합니다.

$ mkdir /opt/nginx/conf/host
$ vi redmine.conf

redmine.conf 파일에 아래 내용을 추가

server {
    listen 80;

    location / {
        root /data/redmine-3.4.10/public;
        passenger_enabled on;
    }

    client_max_body_size 10m; # Max attachemnt size

 

마지막으로 systemctl 에 nginx 등록합니다.

$ sudo vi /usr/lib/systemd/system/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

파일을 추가한 이후 nginx 을 활성화하고 서버를 시작하면 설치가 마무리됩니다.

$ sudo systemctl daemon-reload
$ sudo systemctl enable nginx
$ sudo systemctl restart nginx
반응형

'Computer > Software' 카테고리의 다른 글

SoftEther VPN 분석  (0) 2019.09.17
무료 Hypervisor 3종 : Hyper-V, Proxmox VE, XCP-ng  (0) 2019.08.22
WinSSHTerm  (0) 2019.07.30
Adobe Acrobat Reader DC 에서 보호 모드 끄기  (0) 2019.07.11
무료 채팅 소프트웨어 검토  (2) 2019.06.25
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함