반응형

레드마인 이란?

레드마인이란 중소규모의 프로젝트를 진행할 때 프로젝트 관리를 위해 사용하는 웹기반 이슈트래커의 한 종류


* 이슈트래커란

  • 이슈트래커는 오류를 추적하는 것이라는 뜻. 여럿이서 프로젝트를 진행할 때 각각의 역할이 분업 되어있기 마련인데 이 프로젝트를 진행할 때 변동사항, 새로운 기능 추가, 오류 발생 같은 것들을 웹에 올리고 공유하는 것이라고 할 수 있다.


설치방법

1. redmine을 직접 다운받아서 설치

2. bitnami에서 제공하는 bitnami-redmine을 설치


1. redmine을 직접 다운받아서 설치

설치하기에 앞서 설치 테스트 환경은 다음과 같다.


커널 : 2.6.32-573.7.1.el6.x86_64

APM : rpm 패키지로 설치(Apache : 2.2.15, PHP : PHP 5.3.3, mysql : 5.1.73)

Ruby 버전 : ruby 2.0.0p647

redmine : redmine-2.5.0


또한 redmine 공식 홈페이지 설치 가이드를 참고하였음(영문)


1) 전체적인 패키지 업데이트 후 리부팅

   # yum update

   # reboot


2) 레드마인 설치에 필요한 패키지 설치

  # yum -y install zip unzip libyaml-devel zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel gcc ruby-devel gcc-c++ make postgresql-devel ImageMagick-devel sqlite-devel perl-LDAP mod_perl perl-Digest-SHA


3) Apache와 mysql 설치

  # yum -y install httpd mysql mysql-server


3-1) 서비스 등록 및 실행

  # chkconfig httpd on
  # chkconfig mysqld on
  # service httpd start
  # service mysqld start


3-2) mysql 패스워드 설정

  # /usr/bin/mysql_secure_installation

--------------------------------------------------------------------

Enter current password for root (enter for none):

Set root password? [Y/n] y

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] n

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

------------------------------------------------------------------


4) SELinux 설정

 # vi /etc/sysconfig/selinux

----------------------------------------------------------------------------------------------

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled  → disabled로 변경

# SELINUXTYPE= can take one of these two values:

# targeted - Targeted processes are protected,

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

----------------------------------------------------------------------------------------------


5) hostname 설정

 # vi /etc/hosts

-----------------------------------------------------------------------------------------------------------------------------

127.0.0.1  kjjback localhost localhost.localdomain localhost4 localhost4.localdomain4 kjjback

::1     kjjback localhost localhost.localdomain localhost6 localhost6.localdomain6

-----------------------------------------------------------------------------------------------------------------------------


6) iptables 설정

# vi /etc/sysconfig/iptables

--------------------------------------------------------------------------------------------------

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  → 허용

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT → 허용

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

---------------------------------------------------------------------------------------------------

# /etc/init.d/iptables restart


7) PHP ,  phpMyAdmin 설치 및 설정 (phpMyAdmin은 선택)


<PHP>

# yum -y install php php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-soap


# /etc/init.d/httpd restart


8) Ruby 설치

# \curl -L https://get.rvm.io | bash


# source /etc/profile.d/rvm.sh


# rvm list known 입력하면 ruby 버전들이 출력된다.

----------------------------------------------------------------------

[ruby-]1.8.6[-p420]

[ruby-]1.8.7[-head] # security released on head

[ruby-]1.9.1[-p431]

[ruby-]1.9.2[-p330]

[ruby-]1.9.3[-p551]

[ruby-]2.0.0[-p647]

[ruby-]2.1[.7]

[ruby-]2.2[.3]

[ruby-]2.2-head

ruby-head

....

---------------------------------------------------------------------

# rvm install 2.0.0 (문서상에서는 1.9.3버전을 설치하지만 bundle install할때 생기는 rake-cache 때문에 2.0.0으로 설치한다)


인스톨 후 ruby -v 명령어를 입력하면 ruby 버전이 출력된다.

# ruby -v

ruby 2.0.0p647 (2015-08-18 revision 51631) [x86_64-linux]


9) Rubygems 설치

# yum -y install rubygems


10) Passenger 설치 (아피치 연동을 위해)

# gem install passenger

# passenger-install-apache2-module


< passenger.conf 생성>

vi /etc/httpd/conf.d/passenger.conf

-----------------------------------------------------------------------------------------------------------------------------------

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p647/gems/passenger-5.0.20/buildout/apache2/mod_passenger.so

<IfModule mod_passenger.c>

  PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p647/gems/passenger-5.0.20

  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.0.0-p647/wrappers/ruby

</IfModule>

-----------------------------------------------------------------------------------------------------------------------------------

위의 내용을 추가해주고 아파치를 리스타트 한다.


11) Redmine 데이터베이스 생성

# mysql --user=root --password=root_password_mysql

> create database redmine_db character set utf8;
> create user 'redmine_admin'@'localhost' identified by '패스워드';
> grant all privileges on redmine_db.* to 'redmine_admin'@'localhost';
> quit;


12) Redmine 설치

# cd /var/www

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

# tar xvfz redmine-2.5.0.tar.gz (압축해제)
# mv redmine-2.5.0 redmine (디렉토리 이름 변경)
# rm -rf redmine-2.5.0.tar.gz (압축파일 제거)


< database.yml 파일 수정>

# cd /var/www/redmine/config (디렉토리 이동)
# cp database.yml.example database.yml (샘플파일 복사)
# vi database.yml
---------------------------------------------------------------------------------------

production:

 adapter: mysql2

 database: redmine_db → 변경

 host: localhost

 username: redmine_admin → 변경

 password: "redmine_admin 패스워드" → 변경

 encoding: utf8

-----------------------------------------------------------------------------------

13) Rails 세팅

# cd /var/www/redmine

# gem install bundle

# bundle install

 → rack-cache -v ‘1.3.0’은 ruby-2.0.0 부터 지원하기 때문에 ruby버전이 2.0.0 밑이라면 rack-cache부분에서 에러가 발생한다.

 → 그 외 에러나는 부분은 에러에서 설명하는 바와 같이 gem install 패키지명 -v ‘버전’과 같이 설치하면 된다.


# rake generate_secret_token


14) 테이블 생성 작업

(redmine 디렉토리에서 작업할 것)

# RAILS_ENV=production rake db:migrate (입력했을때 이상이 없다면 아무런 메시지가 출력되지 않는다.)

# RAILS_ENV=production rake redmine:load_default_data

-----------------------------------------------------------------------------------------------------------------------------------

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]

-----------------------------------------------------------------------------------------------------------------------------------

언어 선택창이 나오며 사용할 언어를 선택 바로 enter치면 기본 en로 됨


15) FCGI 활성

# cd /var/www/redmine/public

# mkdir plugin_assets
# cp dispatch.fcgi.example dispatch.fcgi
# cp htaccess.fcgi.example .htaccess


16) FastCGI, Apache 설정

#cd /var/www/

#rpm --import https://fedoraproject.org/static/0608B895.txt

#wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

#rpm -ivh epel-release-6-8.noarch.rpm

#yum -y install mod_fcgid

#rm -rf epel-release-6-8.noarch.rpm


17) 데이터 디렉토리 설정
# mkdir -p /opt/redmine/files

# chown -R apache:apache /opt/redmine
# cd /var/www/redmine/config

# cp configuration.yml.example configuration.yml

# vi configuration.yml

---------------------------------------------------------------------------------------------------

# Absolute path to the directory where attachments are stored.

 # The default is the 'files' directory in your Redmine instance.

 # Your Redmine instance needs to have write permission on this

 # directory.

 # Examples:

 # attachments_storage_path: /var/redmine/files

 # attachments_storage_path: D:/redmine/files

 attachments_storage_path: /opt/redmine/files → 해당부분을 추가

-------------------------------------------------------------------------------------------------


18) redmine virtualhost 생성 및 설정

# vi /etc/httpd/conf.d/redmine.conf

--------------------------------------------------------------------------

<VirtualHost *:80>
       ServerName your_domain
       ServerAdmin your_domain@domain.com
       DocumentRoot /var/www/redmine/public/
       ErrorLog logs/redmine_error_log
       <Directory "/var/www/redmine/public/">
               Options Indexes ExecCGI FollowSymLinks
               Order allow,deny
               Allow from all
               AllowOverride all
       </Directory>
</VirtualHost>
--------------------------------------------------------------------------

위의 내용을 추가 해준다.


19) 레드마인 실행

# cd /var/www
# chown -R apache:apache redmine

# chmod -R 755 redmine

# /etc/init.d/ httpd restart


-----------------------------------------------------------------------------------------------------------------------------------

브라우저에서 http:// IP주소를 입력해서 redmine 초기 페이지가 나오는지 확인 해본다.


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


20) Subversion 설치

# mkdir -p /opt/repositories/svn

# chown -R apache:apache /opt/repositories/

# chmod 0755 /opt/repositories

# yum install mod_dav_svn subversion subversion-ruby

# mkdir /usr/lib64/perl5/vendor_perl/Apache
# ln -s /var/www/redmine/extra/svn/Redmine.pm /usr/lib64/perl5/vendor_perl/Apache/Redmine.pm


# vi /etc/httpd/conf.d/subversion.conf

-------------------------------------------------------------------------------------------------------------

PerlLoadModule Apache::Redmine
<Location /svn>
       DAV svn
       SVNParentPath "/opt/repositories/svn"
       SVNListParentPath on
       Order deny,allow
       Deny from all
       Satisfy any
       LimitXMLRequestBody 0
       SVNPathAuthz off
       PerlAccessHandler Apache::Authn::Redmine::access_handler
       PerlAuthenHandler Apache::Authn::Redmine::authen_handler
       AuthType Basic
       AuthName "Subversion Repository"
       Require valid-user
       RedmineDSN "DBI:mysql:database=redmine_db;host=localhost:3306"
       RedmineDbUser "redmine_admin"
       RedmineDbPass "redmine_admin계정 패스워드"
</Location>
-----------------------------------------------------------------------------------------------------------

위의 내용을 추가해준다.



2.  bitnami-redmine 패키지로 설치 (알아서 apache, mysql, php를 설치해줌)

1) https://bitnami.com/stack/redmine/installer 사이트로 가서 OS 버전(Windows, MAC OS, Linux) 중  linux 버전을 선택해서 다운받는다. (32비트, 64비트 선택)

2) wget https://bitnami.com/redirect/to/73667/bitnami-redmine-2.6.7-1-linux-x64-installer.run

3) 받은 bitnami-redmine-2.6.7-0-linux-x64-installer.run 파일의 실행권한을 700으로 준다.

             # chmod 700 bitnami-redmine-2.6.7-0-linux-x64-installer.run

      

-------------------------------------------------------------------------------------------------------------------------------

Redmine version Supported Ruby versions    Rails version used

current trunk ruby 1.9.33, 2.0.02, 2.1, 2.21             Rails 4.20

      3.0 ruby 1.9.33, 2.0.02, 2.1, 2.21             Rails 4.20

      2.6 ruby 1.8.74, 1.9.2, 1.9.33, 2.0.02, 2.1, 2.2, jruby-1.7.6 Rails 3.2

-------------------------------------------------------------------------------------------------------------------------------


< 선택사항 >

※ phpMyAdmin

#rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
#yum install #http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
#yum -y install phpmyadmin


<phpmyadmin.conf 설정>

# vi /etc/httpd/conf.d/phpmyadmin.conf

--------------------------------------------------------------

#

#  Web application to manage MySQL

#


<Directory "/usr/share/phpmyadmin">

 Order Deny,Allow

 Deny from all

 Allow from all  → 변경

</Directory>


Alias /phpmyadmin /usr/share/phpmyadmin

Alias /phpMyAdmin /usr/share/phpmyadmin

Alias /mysqladmin /usr/share/phpmyadmin

-----------------------------------------------------------------


# vi /usr/share/phpmyadmin/config.inc.php 설정

------------------------------------------------------------

/* Authentication type */

$cfg['Servers'][$i]['auth_type'] = 'http';

/* Server parameters */

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['connect_type'] = 'tcp';

$cfg['Servers'][$i]['compress'] = false;

----------------------------------------------------------

$cfg['Servers'][$i]['auth_type'] = 'cookie'; → $cfg['Servers'][$i]['auth_type'] = 'http';

로 변경


# /etc/init.d/httpd restart


# 브라우저에서 IP 주소/phpmyadmin 입력 후 인증창이 나오면 ID: root / mysql root 패스워드 입력

 접속 확인


phpMyAdmin 을 8080 포트로 사용하기

redmine이 80포트를 사용하기 때문에 8080포트로 변경해서 사용하는 방법


1. iptables 에서 8080 포트 허용


2. httpd.conf 파일 수정 (vhost 추가)

   # vi /etc/httpd/conf/httpd.conf

-----------------------------------------------------------------

Listen 80

→ Listen 8080 추가

-----------------------------------------------------------------

---------------------------------------------------------------------------------------------------

<VirtualHost *:8080> → 8080포트 설정

DocumentRoot /usr/share/phpmyadmin/  → phpmyadmin 경로

ServerName rm.kjj.kr  → 도메인 이름

</VirtualHost>

---------------------------------------------------------------------------------------------------


3. 아파치 재시작

  # /etc/init.d/httpd restart



※ SMTP 설정

# vi /var/www/redmine/config/configuration.yml

-----------------------------------------------------------------------------

email_delivery:
  delivery_method: :sendmail

----------------------------------------------------------------------------

email_delivery:
  delivery_method: :smtp
  smtp_settings:
       enable_starttls_auto: true
       address: "smtp.gmail.com"
       port: 587
       domain: "smtp.gmail.com"
       authentication: :plain
       user_name: "your_email@gmail.com"
       password: "your_password"



---------------------------------------------------------------------------------------------------------------------------

반응형

'운영체제(OS) > 리눅스(Linux)' 카테고리의 다른 글

리눅스 스케쥴러 cron  (0) 2017.07.16
리눅스 원격파일 전송 명령어 scp  (0) 2017.07.14
리눅스 TCP Wrapper  (0) 2017.07.14
리눅스 파일 속성  (0) 2017.07.13
커널버전 별 OS 버전  (0) 2017.07.13

+ Recent posts