나의 개발 일상 기록
[CentOS7] 레드마인 설치 본문
Redmine4.1 설치 과정
* 레드마인을 설치하기전 DB 설치를 먼저 진행하겠습니다.
아래의 링크를 참고하여 MySQL 설치를 진행합니다.
[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 |