티스토리 뷰
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
- OracleJDK
- Phabricator
- git
- Spring Boot
- 워드프레스
- 내장 WAS
- Nas
- KDE
- Redmine
- proxmox
- java config
- NoSQL
- messages.properties
- 엘지
- jooq
- manjaro
- paging
- 페이징
- 프로젝트 규모
- Spring MVC
- Spring
- RestTemplate
- SI
- couchbase
- 도입기
- docker
- 외장 WAS
- 시니어 프로그래머
- boot
- 클라우드플레어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |