SW/리눅스

CentOS 7 : Redmine 설치, 구성 방법, 예제, 명령어

얇은생각 2021. 5. 9. 07:30
반응형

Redmine은 가장 인기 있는 오픈 소스 프로젝트 관리 및 문제 추적 소프트웨어 도구 중 하나입니다. 크로스 플랫폼 및 크로스 데이터베이스이며 Ruby on Rails 프레임워크 위에 구축되었습니다.

Redmine에는 여러 프로젝트, 위키, 이슈 추적 시스템, 포럼, 캘린더, 이메일 알림 등에 대한 지원이 포함됩니다.

Redmine의 최신 버전을 CentOS 7 서버에 설치하고 구성하는 데 필요한 단계를 다룹니다. 데이터베이스 백엔드로 MariaDB를 사용하고 Ruby 애플리케이션 서버로 Passenger + Nginx를 사용합니다.

 

 

 

전제조건

다음 필수 구성 요소를 충족했는지 확인하십시오.

- 서버 공용 IP를 가리키는 도메인 이름입니다. 이 튜토리얼에서는 example.com을 사용할 것입니다.

- sudo 권한을 가진 사용자로 로그인했습니다.

소스에서 Redmine Ruby를 구축하는 데 필요한 패키지를 설치합니다.

sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool  
sudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline  glibc-headers glibc-devel
sudo yum install mariadb-devel zlib libyaml-devel bzip2 iconv-devel ImageMagick ImageMagick-devel

 

 

 

MySQL 데이터베이스 생성

Redmine MySQL/MariaDB, Microsoft SQL Server, SQLite 3 PostgreSQL을 지원합니다. MariaDB를 데이터베이스 백엔드로 사용합니다.

CentOS MariaDB 또는 MySQL이 설치되어 있지 않은 경우 서버는 다음 지침에 따라 설치할 수 있습니다.

다음 명령을 입력하여 MySQL 셸에 로그인합니다.

sudo mysql

 

 

MySQL 셸 내에서 다음 SQL 문을 실행하여 새 데이터베이스를 생성합니다.

CREATE DATABASE redmine CHARACTER SET utf8;

 

 

그런 다음 MySQL 사용자 계정을 만들고 데이터베이스에 대한 액세스 권한을 부여합니다.

GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';

 

 

강력한 암호로 변경 내용을 변경해야 합니다.

완료되면 다음을 입력하여 mysql 셸을 종료합니다.

EXIT;

 

 

 

Passenger Nginx 설치

Passenger Apache Nginx와 통합할 수 있는 Ruby, Node.js Python용 빠르고 가벼운 웹 애플리케이션 서버입니다. Nginx 모듈로 Passenger를 설치합니다.

EPEL 저장소와 필요한 패키지를 설치합니다.

sudo yum install epel-release yum-utils pygpgme
sudo yum-config-manager --enable epel

 

 

Phusion Passenger 리포지토리를 활성화합니다.

sudo yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo

 

 

리포지토리를 활성화하면 패키지 목록을 업데이트하고 다음을 사용하여 Nginx Passenger를 모두 설치합니다.

sudo yum install nginx passenger passenger-devel

 

 

 

새 시스템 사용자 생성

Redmine 인스턴스를 실행할 새 사용자 및 그룹을 생성하고 단순하게 사용자 이름을 Redmine으로 지정합니다.

sudo useradd -m -U -r -d /opt/redmine redmine

 

 

nginx 사용자를 새 사용자 그룹에 추가하고 /opt/redmin 디렉토리 사용 권한을 변경하여 Nginx가 액세스할 수 있도록 합니다.

sudo usermod -a -G redmine nginx
sudo chmod 750 /opt/redmine

 

 

 

Ruby 설치

CentOS 리포지토리는 상당히 구식이며 Redmine에서 지원되지 않습니다. RVM으로 Ruby를 설치하겠습니다.

다음을 입력하여 사용자 재확인으로 전환합니다.

sudo su - redmine

 

 

GPG 키를 가져오고 RVM을 설치합니다.

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable

 

 

RVM 소스 사용을 시작하려면 rvm 파일을 사용합니다.

source /opt/redmine/.rvm/scripts/rvm

 

 

이제 다음을 실행하여 Ruby를 설치할 수 있습니다.

rvm install 2.5
rvm --default use 2.5

 

Rbenv를 통해 Ruby를 설치하려면 이 가이드를 참조하십시오.

 

 

 

Redmine on CentOS 설치

당시, Redmine의 최신 안정 버전은 4.0.1 버전입니다. 

다음 단계를 계속하기 전에 Redmine 다운로드 페이지에서 최신 버전을 사용할 수 있는지 확인해야 합니다.

다음 단계를 실행하여 사용자를 재확보하십시오.

 

1. Redmine을 다운로드하세요.

다음 컬 명령을 사용하여 Redmine 아카이브를 다운로드합니다.

curl -L http://www.redmine.org/releases/redmine-4.0.1.tar.gz -o redmine.tar.gz

 

 

다운로드가 완료되면 아카이브를 추출합니다.

tar -xvf redmine.tar.gz

 

 

2. Redmine Database를 구성합니다.

Redmine 예제 데이터베이스 구성 파일을 복사합니다.

cp /opt/redmine/redmine-4.0.1/config/database.yml.example /opt/redmine/redmine-4.0.1/config/database.yml

 

 

텍스트 편집기로 파일을 엽니다.

nano /opt/redmine/redmine-4.0.1/config/database.yml

 

 

프로덕션 섹션을 검색하고 이전에 생성한 MySQL 데이터베이스 및 사용자 정보를 입력합니다.

# /opt/redmine/redmine-4.0.1/config/database.yml

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "change-with-strong-password"
  encoding: utf8

 

 

완료되면 파일을 저장하고 편집기를 종료합니다.

 

3. Ruby 종속성을 설치합니다.

Redmin-4.0.1 디렉토리로 이동하고 번들러 및 기타 Ruby 종속성을 설치합니다.

cd ~/redmine-4.0.1
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite

 

 

4. 키를 생성하고 데이터베이스를 마이그레이션합니다.

다음 명령을 실행하여 키를 생성하고 데이터베이스를 마이그레이션합니다.

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

 

 

 

Nginx 구성

sudo 사용자로 다시 전환합니다.

exit

 

 

텍스트 편집기를 열고 다음 Nginx 서버 블록 파일을 만듭니다.

# /etc/nginx/conf.d/example.com.conf

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

server {
    listen 80;
    server_name example.com www.example.com;

    root /opt/redmine/redmine-4.0.1/public;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    passenger_enabled on;
    passenger_min_instances 1;

    client_max_body_size 10m;
}

 

 

example.com Redmine 도메인으로 교체하는 것을 잊지 마십시오.

Nginx 서비스를 다시 시작하기 전에 구문 오류가 없는지 테스트합니다.

오류가 없는 경우 출력은 다음과 같아야 합니다.

sudo nginx -t

# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

 

 

마지막으로 다음을 입력하여 Nginx 서비스를 다시 시작합니다.

sudo systemctl restart nginx

 

 

 

SSL을 사용하여 Nginx 구성

도메인에 대해 신뢰할 수 있는 SSL 인증서가 없는 경우 다음 지침에 따라 무료 SSL 인증서를 생성할 수 있습니다.

인증서가 생성되면 다음과 같이 도메인 Nginx 구성을 편집합니다.

# /etc/nginx/conf.d/example.conf

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /opt/redmine/redmine-4.0.1/public;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    passenger_enabled on;
    passenger_min_instances 1;
    client_max_body_size 10m;
}

 

 

example.com Redmine 도메인으로 바꾸고 SSL 인증서 파일의 올바른 경로를 설정해야 합니다. 모든 HTTP 요청은 HTTPS로 리디렉션됩니다.

 

 

 

Redmine 액세스

브라우저를 열고 도메인을 입력하면 설치가 성공했다고 가정하면 다음과 유사한 화면이 나타납니다.

CentOS 7 : Redmine 설치, 구성 방법, 예제, 명령어 1

 

 

Redmine의 기본 로그인 자격 증명은 다음과 같습니다.

 username : admin

password : admin

처음 로그인할 때 아래와 같이 암호를 변경하라는 메시지가 표시됩니다.

CentOS 7 : Redmine 설치, 구성 방법, 예제, 명령어 2

 

 

암호를 변경하면 사용자 계정 페이지로 리디렉션됩니다.

반응형