Notice
Recent Posts
Recent Comments
Link
«   2026/08   »
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
Tags
more
Archives
Today
Total
관리 메뉴

나의 개발 일상 기록

[CentOS7] 레드마인 설치 본문

AWS

[CentOS7] 레드마인 설치

느린 거북이 2021. 2. 17. 11:28

Redmine4.1 설치 과정

* 레드마인을 설치하기전 DB 설치를 먼저 진행하겠습니다.

   아래의 링크를 참고하여 MySQL 설치를 진행합니다.

hsti.tistory.com/14

 

[CentOS7] MySQL 설치

CentOS7에 MySQL 설치 과정 * root 계정으로 접속을 한다. 1. MySQL yum repository package 다운로드  wget http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm  위의 명령어를 사용하여 Re..

hsti.tistory.com

* Redmine DB 및 DB계정 생성 후 redmine 테이블에 대한 외부 접근 권한 설정

 

1. SELinux 설정 변경

   

    vi /etc/sysconfig/selinux

    위의 명령어를 통해 selinux 편집기에 들어갑니다.

    아래의 그림에서 SELINUX 부분이 enforcing(적용)로 있는경우 disabled로 수정합니다.

   * SELinux 

     표준 리눅스 보안은 접근제어(Discretionary Access Control - DAC) 모델을 따릅니다.

     SELinux는 Linux 커널에 내장된 보안 모듈로 강제적 접근 제어(MAX)를 수행합니다.

     응용프로그램에서 불필요한 부분은 제외하고 오직 필요한 기능에 대해서만 사용 권한을

     안전하게 부여하는 것이 가능합니다. 따라서 사용자는 한 응용프로그램에게

     그 프로그램이 제대로 작동하는데 필요한 권한만 안전하게 부여할 수 있습니다.

 

   * 수정 후 시스템을 재시작해야 정상적으로 적용됩니다.

 

2. 시스템 재부팅

      

   reboot

   위의 명령어를 통해 시스템을 재부팅 합니다.

 

3. 설정 변경 확인

    

  getenforce

  위의 명령어를 통해 변경 된 부분이 Disabled 되었는지 확인

 

  * getenforce : SELinux 상태(모드)를 조회하는 리눅스 명령어

 

4. 방화벽 서비스 실행

 

  systemctl start firewalld

  위의 명령어를 통해 방화벽을 실행합니다.

 

  * systemctl : 리눅스의 systemd 와 service manager를 컨트롤 하기 위한 도구이며,

                   서비스의 상태 진단, 설정변경, 구동과 중단 등의 전반적인 관리 기능을 제공합니다.

 

  * 방화벽이 설치가 안되어있다면 yum install firewalld 명령어를 통해 방화벽 설치

 

5. 방화벽 포트 추가

     

  firewall-cmd --add-port=3000/tcp

  위의 명령어를 통해 tcp 포트를추가합니다.

 

  * firewall-cmd : CentOS7의 방화벽 관리 데몬은 firewalld입니다. 설정은

                       firewall-cmd 명령어로 합니다.

  * 데몬(Daemon) : 리눅스 시스템이 처음 가동될 때 실행되는 백그라운드 프로세스의

                         일종으로 메모리에 상주하면서 특정 요청이 오면 즉시 대응 할 수

                         있도록 대기 중인 프로세스이다.

 

6. 방화벽 부팅 시 등록

 

    systemctl enable firewalld

    위의 명령어를 통해 서버 부팅 시 방화벽 서버를 자동으로 시작

     

    * systemctl enable : 서비스 파일 등록해줍니다. 부팅 시 서비스가 실행하게 해줍니다.

 

7. 방화벽 활성화 여부 확인

   

  systemctl is-enabled firewalld

  위의 명령어를 통해 방화벽 서비스의 활성화 여부를 확인합니다.

 

  * systemctl is-enabled name.service == systemctl status name.service

 

8. 방화벽 재시작

   

  firewall-cmd --reload

  위의 명령어를 통해 방화벽을 재시작합니다. 

 

9. 방화벽 상태 확인

    

    firewall-cmd --state

    위의 명령어를 통해 방화벽의 상태를 확인합니다.

* netstat -tnlp : 방화벽 포트 확인

 

10. 개발툴 설치

       

     yum groupinstall "Development Tools"

     위의 명령어를 통해  개발툴을 설치합니다.

     

     * yum groupinstall : 그룹 패키지를 설치합니다.

 

11. 의존성 파일 설치

       

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

    위의 명령어를 통해 Redmine 설치에 필요한 의존성 파일들을 설치합니다.

 

    * -devel : -devel로 끝나는 이름의 패키지는 해당 패키지의 개발 툴 혹은 라이브러리를

                 포함하는 패키지를 의미합니다. 

    * openssl : 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈소스

                   구현판입니다.

    * readline : 명령이나 문장을 입력할 때 줄을 편집할 수 있게끔 도와주는 라이브러리입니다.

    * curl : 서버와 통신할 수 잇는 커멘드 명령어 툴입니다. curl의 특징으로는 수 많은 

             프로토콜을 지원한다는 장점이 있습니다.

    * libyaml : YAML의 라이브러리입니다.

       * YAML : json, xml 파일과 같은 데이터 전송 파일을 의미한다.

   

12. 웹서버 설치

       

    yum install httpd httpd-devel

    위의 명령어를 통해 웹서버를 설치합니다.

 

13. 의존성 파일 설치

       

    yum install ImageMagick ImageMagick-devel

    위의 명령어를 통해 Redmine 설치에 필요한 의존성 파일들을 설치합니다.

 

    * ImageMagick : 리눅스에서 이미지를 확대 축소등의 자유롭게 사용하기 위한 도구입니다.

 

14. php 설치

       

    yum -y install php-mysql     

    위의 명령어를 통해 php를 설치합니다.

 

    * yum -y : -y 옵션 지정 시 설치중 y/n 선택 없이 all yes로 yum이 진행이됩니다.

 

15. php관련 파일 설치

        

     yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc 

                         php-mbstring php-snmp php-soap curl curl-devel 

     위의 명령어를 통해  php관련 파일을 설치합니다.

               

16. Apache와 Redmine연동을 위한 라이브러리 설치

        

    yum -y install httpd libcurl-devel httpd-devel apr-devel apr-util-devel

    위의 명령어를 통해 Apache Passenger를 이용하여 아파치와 연동해야하므로 관련 

    라이브러리 설치합니다.

 

    * libcurl : 데이터 전송과 관련된 프로그램의 빠른 작성을 위해 사용하는

                 command line tool 라이브러리입니다.

    * apr : Apache가 설치된 플랫폼(OS)에 관계 없이 일정한 동작을 하기 위해

             필요한 라이브러리입니다.

    * apr-util : apr의 유틸리티입니다.

 

17. 경로 이동

     

    cd /usr/local/src

 

18. ruby package 다운로드

      

    wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.gz

    위 명령어를 통해 ruby package 다운로드 합니다.

 

    * wget : 인터넷에서 단일 파일을 받아 현재 디렉토리에 저장하는 명령어

 

19. ruby 압축 풀기

      

    tar xvf ruby-2.6.5.tar.gz

    위의 명령어를 통해 ruby를 압축 해제합니다.

 

    * tar : tar OR tar.gz로 압축을 하거나 풀어야 할 경우 사용되는 명령어입니다.

    * xvf : tar 압축 풀기 위한 명령어입니다.

 

20. 경로 이동

        

      cd ruby-2.6.5

 

21. install 환경 설정

 

     ./configure 

     위의 명령어를 통해 install을 하기 위한 환경을 설정해줍니다.

 

22. 소스 컴파일 및 설치파일 설치

       

     make && make install

     위의 명령어를 통해 소스 컴파일 및 설치파일 설치를 합니다.

     

     * make : 파일 관리 유틸리티 입니다. 

                 소스를 컴파일 하는 명령어입니다.

     * make install : make를 통해 만들어진 설치파일을 설치를 하는 과정입니다.

     * make && make install 명령어 실행 시 실행이 안될경우

       make와 make install을 각각 실행시키면 됩니다.

      

23. ruby 버전 확인

      

     ruby -v 

 

24.  rubygems package 다운로드

       

      wget https://rubygems.org/rubygems/rubygems-3.1.2.tgz

      위의 명령어를 통해 rubygems package를 다운로드 합니다.

      

      * rubygems

        루비에서 지원하는 패키지 시스템으로 리눅스의 패키지 시스템인 yum apt emerge 같은 것으로

        필요프로그램을 관리할 수 있는 프로그램입니다.

 

25. rubygems 압축 풀기

       

    tar xvf rubygems-3.1.2.tgz

    위의 명령어를 통해 rubygems 압축 해제합니다.

 

26. 경로이동

     

     cd rubygems-3.1.2

 

27. ruby setup

      

    /usr/local/bin/ruby setup.rb

    위의 명령어를 통해 ruby 셋업 프로그램을 실행합니다.

 

28. bundler, chef, ruby-shadow 설치

       

    gem install bundler chef ruby-shadow

    위의 명령어를 통해 bundler, cher, ruby-shadow를 설치합니다.

 

    * gem : 명령만 내리면 인터넷에서 자동으로 프로그램을 받아서 설치를 해줍니다.

               ruby 프로그램과 라이브러리를 배포하는 표준형식과 배포 방법을 제공해줍니다.

    * bundler : Ruby 어플리케이션을 위한 일관된 환경을 관리를 해주는 도구입니다.

    * chef : 서버나 애플리케이션을 쉽게 배포하기 위한 시스템이나 클라우드 인프라 

               자동화 프레임워크입니다.

    * ruby-shadow : ruby 프로그래밍 언어에서 Shadow Password 파일에 접근하고자

                          할 때 사용하는 모듈입니다.

    * shadow 파일 :  계정의 패스워드 정보와 에이징(aging)정보를 담고 있다. 

                          에이징 정보란 계정의 만료기간, 비밀번호 번경일자등을 관리하는 것입니다.

                          이 파일은 일반적인 사용자들이 절대 읽을 수 없도록 합니다.

 

29. ruby-openid 설치

      

    gem install ruby-openid

    위의 명령어를 통해 ruby-openid를 설치합니다.

 

    * openid : 타사 프로토콜을 사용하여 웹 사이트에 로그인할 수 있도록 해주는 기능입니다.

 

30. rails 설치

     

    gem install rails -V 

    위의 명령어를 통해 rails를 설치합니다.

 

    * rails : ruby 기반으로 만들어진, ruby 기반 환경에서 동작하는 웹어플리케이션 프레임워크입니다.

 

31. 경로 이동

     

    cd /usr/local/src

 

32. 레드마인 package 다운로드

       

    wget https://www.redmine.org/releases/redmine-4.1.0.tar.gz 

    위의 명령어를 통해 redmine package를 다운로드합니다.

 

    * http://www.redmine.org/projects/redmine/wiki/Download 에서 설치 용 소스코드를

      확인할 수 있습니다.

 

33. 레드마인 package 압축 해제

      

    tar xvfz redmine-4.1.0.tar.gz

    위의 명령어를 통해 redmine을 압축해제합니다.

 

34. 경로이동

        

    cd redmine-4.1.0

 

35. 파일 복사

      

    cp config/configuration.yml.example config/configuration.yml

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

    위의 명령어들을 통해 *.yml.example 파일을 복사합니다.

 

36. database.yml 파일 수정

        

    vi config/database.yml

    위의 명령어를 통해 해당 파일을 아래와 같이 수정합니다.

 

 

37. 구동에 필요한 package 설치

       

    bundle install --without development test --path vendor/bundle

    위의 명령어를 통해 구동에 필요한 package를 설치합니다.

 

    * --without : install 시 database.yml 파일에서

                     development test 부분 제외시켜줍니다.

    * --path : install할 경로를 지정해줍니다.

 

38. 쿠키 암호화를 위한 시크릿 토큰 생성

      

    bundle exec rake generate_secret_token

    위의 명령어를 Rails에서 사용되는 비밀키를 생성하고 저장해줍니다.

 

    * rake : rails가 여러 목적으로 사용하는 범용 명령 실행 도구입니다.

    * generate_secret_token : 비밀키를 생성해주는 도구입니다.

 

39. 데이터베이스 생성

        

     RAILS_ENV=production bundle exec rake db:migrate

     위의 명령어를 통해 데이터베이스 스키마를 생성합니다.  

     

     * RAILS=ENV : 배포환경을 적용해줍니다.

 

40. 한국어 설정

      

    RAILS_ENV=production bundle exec rake redmine:load_default_data

    위의 명령어를 통해 데이터베이스의 디폴트 데이터셋 설정을 해줍니다.

 

   아래의 그림처럼 ko를 추가해줍니다.

41. 레드마인 실행

       

    bundle exec rails server webrick -e production -b 0.0.0.0 &

    위의 명령어를 통해 WEBrick 웹 서버를 구동시킵니다.

     

     * WEBrick : ruby에서 사용할 수 있는 HTTP 웹 서버 라이브러리입니다.

 

42.  gem을 통해 passenger 설치

       

      gem install passenger

      위의 명령어를 통해 passenger를 설치합니다.

 

     * passenger : 프로레스를 관리하는 역할을 하며 HTTP Request를 

                        라이팅처리해줍니다.

 

43. passenger를 통해 아파치 모듈 설치

      

    passenger-install-apache2-module

    위의 명령어를 통해 apache 모듈을 설치합니다.

 

44. redmine.conf 신규 생성 후 편집

     

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

    위 명령어를 통해 redmine.conf 파일 생성 후 아래와 같이 편집합니다.

     

 

45. 아파치 재시작 및 재부팅

      

    systemctl restart httpd

    systemctl enable httpd

    위의 명령어를 통해 Apache 재시작 및 재부팅 합니다.

 

    *레드마인 프로세스 확인

     ps -ef | grep rail 명령어를 통해 redmine PID를 확인 가능합니다.

    

46. 레드마인 접속

      

    http://자기 자신의 IP:3000 으로 접속

 

*.  AWS 포트 열기

      

      서비스 탭 -> 해당 서비스(EC2) 선택 -> 네트워크 및 보안 -> 보안그룹 -> 해당 보안그룹ID 클릭

 

      위의 과정을 통하면 인바운드 규칙을 설정할 수 있는 화면이 나옵니다.

      인바운드 규칙편집으로 통해 3000port를 추가해줍니다.

 

      

     

'AWS' 카테고리의 다른 글

[CentOS7] JDK 8 설치  (0) 2021.05.10
[CentOS7] Linux 디렉토리  (0) 2021.05.06
[CentOS7] mattermost 버전 업데이트  (0) 2021.02.23
[CentOS7] mattermost 설치  (0) 2021.02.17
[CentOS7] MySQL 설치  (0) 2021.02.16
Comments