웹사이트 검색

Ubuntu 22.04에 Redmine 프로젝트 관리 도구를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 20.04(Focal Fossa)

이 페이지에서

  1. 전제 조건
  2. 종속성 설치
  3. MySQL 서버 구성
  4. 레드마인 설치
  5. Redmine용 가상 호스트 설정\n
  6. UFW 방화벽 설정\n
  7. Redmine 설치
  8. 결론

Redmine은 무료 오픈 소스 프로젝트 관리 및 문제 추적 도구입니다. 주로 Ruby on Rails로 작성된 웹 기반 애플리케이션 소프트웨어입니다. 크로스 플랫폼이며 여러 데이터베이스와 여러 언어를 지원합니다.

Redmine은 유연하며 소규모, 중간 규모 또는 대규모 조직의 다양한 유형의 조직 및 프로젝트에 사용할 수 있습니다. 이를 통해 여러 프로젝트를 만들고 관리할 수 있으며 각 프로젝트에는 고유한 Wiki, 포럼, 문제 추적 등이 있습니다. 또한 조직의 요구 사항 등에 따라 사용자 지정 역할을 만들 수 있습니다.

Redmine은 GNU GPL v2 라이선스에 따라 출시되며 Linux, Windows 또는 macOS와 같은 모든 운영 체제에 설치할 수 있습니다. PostgreSQL, MySQL 및 SQLite(기본값)를 포함하여 다양한 유형의 데이터베이스를 지원합니다.

이 가이드에서는 Ubuntu 22.04 서버에 Apache2 웹 서버 및 MySQL 서버와 함께 Redmine을 설치합니다. 또한 SSL 인증서로 Redmine 설치를 보호합니다.

전제 조건

이 자습서에는 다음 요구 사항이 필요했습니다.

  • Ubuntu 22.04 서버 - 이 예에서는 호스트 이름이 redmine-server인 Ubuntu 서버를 사용합니다.\n
  • sudo 루트 권한이 있는 루트가 아닌 사용자 - 루트 사용자도 사용할 수 있습니다.\n
  • 서버 IP 주소를 가리키는 도메인 이름 - 프로덕션의 경우 도메인 이름이 서버 IP 주소를 가리키는지 확인해야 합니다.\n

모든 것이 준비되면 이제 Redmine 설치의 첫 번째 단계를 진행할 수 있습니다.

종속성 설치

Redmine은 주로 Ruby 및 RoR(Ruby on Rails)로 작성된 오픈 소스 프로젝트 관리 및 문제 추적 도구입니다. Redmine을 설치하려면 먼저 Ruby를 설치해야 합니다. 그런 다음 웹 서버 Apache2 및 MySQL 서버를 사용하는 데이터베이스와 같은 다른 종속성을 설치할 수 있습니다.

이 예에서는 Apache2 웹 서버 및 MySQL 서버와 함께 Redmine을 실행합니다.

패키지 설치를 시작하기 전에 아래의 apt 명령을 실행하여 Ubuntu 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

리포지토리가 업데이트된 후 아래의 apt 명령을 통해 다음 패키지 종속성을 설치합니다.

이 명령을 사용하면 Apache2에서 실행하기 위해 RoR 애플리케이션을 설정하는 데 사용할 linapache2-mod-passenger가 뒤에 오는 Apache2 웹 서버를 설치합니다. Ruby 패키지도 설치합니다.

sudo apt install apache2 ruby ruby-dev build-essential libapache2-mod-passenger libmysqlclient-dev

설치를 확인하라는 메시지가 표시되면 y를 입력한 다음 ENTER를 눌러 계속 진행합니다.

Apache2와 Ruby가 설치된 후 다음 명령을 실행하여 MySQL 서버를 설치합니다. Redmine은 PostgreSQL, MySQL/MariaDB 및 SQLite와 같은 여러 RDBMS를 지원합니다. 이 예에서는 MySQL 서버를 사용합니다.

sudo apt install mysql-server

설치를 확인하라는 메시지가 표시되면 y를 입력한 다음 Enter 키를 눌러 계속 진행합니다.

Redmine을 설치하려면 Ubuntu 서버에 번들러도 설치해야 합니다. bundler는 Ruby Gems 패키지를 관리하는 데 사용되는 명령줄입니다.

다음 명령을 실행하여 번들러를 시스템에 설치합니다.

sudo gem install bundler

번들러가 설치되면 다음과 같은 출력이 표시됩니다.

마지막으로 아래의 systemctl 명령을 통해 Apache2 및 MySQL 서비스를 확인합니다. 이렇게 하면 Apache2 및 MariaDB 서비스가 모두 실행되고 활성화됩니다.

Apache2 서비스를 확인합니다.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

아래에서 Apache2 서비스가 활성화되고 시스템 부팅 시 자동으로 실행되는 것을 볼 수 있습니다. 그리고 서비스의 현재 상태는 실행 중입니다.\\

MySQL 서비스를 확인합니다.

sudo systemctl is-enabled mysql
sudo systemctl status mysql

다음과 유사한 출력이 표시됩니다. - MySQL 서비스가 활성화되어 부팅 시 자동으로 실행됩니다. 그리고 MySQL 서비스의 현재 상태가 실행 중입니다.

MySQL 서버 구성

Apache2 및 MySQL 서버가 설치된 후 MySQL 루트 암호를 설정하고 mysql_secure_installation을 통해 배포를 보호합니다. 그런 다음 Redmine에 대한 새 MySQL 데이터베이스 및 사용자도 생성합니다.

아래의 mysql 명령을 통해 MySQL에 로그인합니다.

sudo mysql

이제 다음 쿼리를 통해 MySQL 루트 비밀번호를 변경하십시오. 그리고 비밀번호는 반드시 비밀번호로 변경하세요. 그런 다음 MySQL 셸에서 quit exiting을 입력합니다.

ALTER USER  IDENTIFIED WITH mysql_native_password BY 'password';
quit

그런 다음 다음 명령을 실행하여 MySQL 서버 배포 보안을 시작합니다.

sudo mysql_secure_installation

MySQL 루트 암호를 묻는 메시지가 표시되면 올바른 암호를 입력합니다.

그런 다음 루트 사용자에 대한 원격 로그인 비활성화, 익명 사용자 제거, 기본 데이터베이스 테스트 제거 및 모든 테이블 권한 다시 로드와 같은 다른 MySQL 구성을 묻는 메시지가 표시됩니다. 이러한 모든 MySQL 서버 설정에 대해 Y를 입력하여 구성을 확인합니다.

MySQL 배포를 확보한 후 Redmine을 위한 새 데이터베이스와 사용자를 설정할 시간입니다.

아래의 mysql 명령을 통해 MySQL 셸에 로그인합니다. MySQL 루트 암호를 묻는 메시지가 나타나면 MySQL 루트 사용자의 올바른 암호를 입력한 다음 ENTER를 누르십시오.

sudo mysql -u root -p

이제 다음 쿼리를 실행하여 Redmine용 새 MySQL 데이터베이스 및 사용자를 생성합니다. 이 예에서는 암호 secretPassword를 사용하여 새 데이터베이스와 사용자 redmine을 생성합니다. 데이터베이스 암호를 사용자 암호로 바꿀 수 있습니다.

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

다음으로 다음 쿼리를 실행하여 MySQL 사용자 redmine의 권한을 확인합니다. MySQL 사용자 redmine이 데이터베이스 redmine에 대한 권한을 가지고 있는지 확인하십시오.

SHOW GRANTS FOR ;
quit

아래에서 데이터베이스 레드마인에 대한 권한이 있는 MySQL 사용자 [email 를 볼 수 있습니다.

마지막으로 quit를 입력하여 MySQL 셸에서 로그아웃합니다.

모든 종속성이 설치되고 MySQL 데이터베이스와 사용자가 생성되면 Ubuntu 서버에 Redmine 프로젝트 관리 도구를 설치할 준비가 된 것입니다.

레드마인 설치

이 단계에서는 최신 버전의 Redmine을 설치합니다. 이 글을 쓰는 시점에서 Redmine의 최신 버전은 v5.0.2입니다.

Redmine 소스 코드를 다운로드하고, 데이터베이스를 구성하고, 빌드를 통해 Ruby 종속성을 설치하고, Redmine 비밀 토큰을 설정하고, 데이터베이스를 마이그레이션합니다.

이 예에서는 /opt/redmine 디렉토리에 Redmine을 설치합니다.

/opt 디렉토리로 이동합니다.

cd /opt/

이제 아래의 wget 명령으로 Redmine 소스 코드를 다운로드하십시오. 다운로드가 완료되면 /opt 디렉토리에 redmine-5.0.2.tar.gz 파일이 표시됩니다.

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

그런 다음 다음 명령을 실행하여 Redmine 소스 코드 redmine-5.0.2.tar.gz를 추출하고 Redmine 디렉토리에 대한 새 심볼릭 링크를 /opt/redmine에 만듭니다.

tar -xvzf redmine-5.0.2.tar.gz
sudo ln -s redmine-5.0.2 redmine

기본 Redmine 설치 디렉토리는 /opt/redmine입니다.

/opt/redmine 디렉토리로 이동합니다.

cd /opt/redmine/

기본 데이터베이스 구성 config/database.yml.example을 config/database.yml에 복사합니다. 그런 다음 nano 편집기를 사용하여 데이터베이스 구성 파일 config/database.yml을 엽니다.

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

프로덕션 섹션에서 MySQL 데이터베이스 및 사용자의 세부 정보를 변경합니다. Redmine에 대해 올바른 데이터베이스 사용자와 암호를 사용해야 합니다.

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "secretPassword"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

파일을 저장하고 완료되면 편집기를 종료하십시오.

다음으로 다음 번들러 명령을 실행하여 Redmine 애플리케이션에 대한 Ruby 종속성을 설치합니다.

bundle config set --local without 'development test'
bundle install

다음과 유사한 출력이 표시됩니다.

Redmine 종속성이 설치되면 다음 명령을 실행하여 Redmine 비밀 토큰을 생성하고 데이터베이스를 마이그레이션합니다.

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

다음 스크린샷에서 Redmine 비밀 토큰이 생성되고 Redmine 데이터베이스 마이그레이션 프로세스를 볼 수 있습니다.

마지막으로 다음 명령을 사용하여 Redmine 설치에 기본값을 로드합니다. 언어를 선택하라는 메시지가 표시되면 영어는 en을 입력합니다.

RAILS_ENV=production bundle exec rake redmine:load_default_data

Redmine 기본 데이터가 로드되면 출력 메시지가 "기본 구성 데이터 로드됨"으로 표시됩니다.

이제 Redmine이 설치되었으므로 Redmine용 Apache2 가상 호스트를 설정합니다.

Redmine용 가상 호스트 설정

이 단계에서는 Redmine에 대한 새로운 Apache2 가상 호스트 구성을 생성합니다. 따라서 서버 IP 주소를 가리키는 도메인 이름이 있고 SSL 인증서가 생성되었는지 확인하십시오.

다음 명령을 실행하여 Apache 모듈 SSL을 활성화하고 다시 작성하십시오.

sudo a2enmod ssl rewrite

다음과 같은 출력이 표시됩니다.

이제 nano 편집기를 사용하여 새 Apache2 가상 호스트 구성 /etc/apache2/sites-available/redmine.conf을 만듭니다.

sudo nano /etc/apache2/sites-available/redmine.conf

파일에 다음 구성을 추가합니다. 그리고 구성에 따라 SSL 인증서의 도메인 이름과 경로를 변경해야 합니다.

<VirtualHost *:80>

    ServerName redmine.hwdomain.io
    ServerAdmin

    # Redirect Requests to SSL
    Redirect permanent "/" "https://redmine.hwdomain.io/"

</VirtualHost>

<IfModule mod_ssl.c>

    <VirtualHost *:443>

        ServerName redmine.hwdomain.io
        RailsEnv production
        DocumentRoot /opt/redmine/public

        ErrorLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.error.log
        CustomLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.access.log combined

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/redmine.hwdomain.io/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/redmine.hwdomain.io/privkey.pem

        <Directory "/opt/redmine/public">
            Allow from all
            Require all granted
        </Directory>

    </VirtualHost>

</IfModule>

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

그런 다음 다음 명령을 실행하여 가상 호스트 파일 redmine.conf를 활성화합니다. 그런 다음 Apache2 구성을 확인하여 구성이 올바른지 확인하십시오.

sudo a2ensite redmine.conf
sudo apachectl configtest

이제 적절한 Apache2 구성이 있으면 "Syntax OK"와 같은 출력 메시지를 받게 됩니다.

마지막으로 아래의 systemctl 명령을 통해 Apache2 서비스를 다시 시작하여 새 가상 호스트 파일을 적용합니다.

sudo systemctl restart apache2

이 시점에서 Redmine이 설치되고 가상 호스트가 구성됩니다. 이제 도메인 이름을 통해 Redmine 설치에 액세스해야 합니다.

UFW 방화벽 설정

프로덕션에서는 방화벽을 켜야 합니다. Ubuntu 시스템의 경우 기본 방화벽 UFE(복잡하지 않은 방화벽)를 사용할 수 있습니다.

이제 네트워크 외부에서 Redmine에 액세스할 수 있도록 기본 HTTP 및 HTTPS 서비스를 여는 UFW 규칙을 추가합니다.

다음 ufw 명령을 실행하여 기본 "OpenSSH" 응용 프로그램 프로필을 UFW에 추가합니다. 그런 다음 UFW 방화벽을 시작하고 활성화하십시오.

sudo ufw allow "OpenSSH"
sudo ufw enable

확인을 요청하면 y를 입력하여 UFW 방화벽 서비스를 시작하고 활성화합니다.

그런 다음 다음 명령을 실행하여 애플리케이션 프로필 "Apache Full"을 방화벽에 추가합니다. 그런 다음 다음 명령을 통해 UFW 상태를 확인합니다.

sudo ufw allow "Apache Full"
sudo ufw status

UFW 방화벽 상태가 활성이고 현재 활성화된 애플리케이션 프로필이 OpenSSH 및 "Apache Full"이어야 합니다. 이렇게 하면 기본 SSH 포트 22와 HTTP 및 HTTPS 서비스 포트 80 및 443이 열립니다.

레드마인 설치

웹 브라우저를 열고 Redmine 설치의 도메인 이름(예: https://redmine.hwdomain.io/)을 방문합니다.

이제 Redmine 프로젝트 관리 및 문제 추적 도구의 홈페이지 기본값이 표시됩니다. Redmine 관리 대시보드에 로그인하려면 "로그인"을 클릭하십시오.

기본 Redmine 관리 사용자 및 비밀번호 "admin - admin"을 입력합니다.

로그인하면 이제 Redmine의 기본 비밀번호를 변경하라는 메시지가 표시됩니다. Redmine 설치를 위한 새 비밀번호를 입력하고 "적용"을 클릭하십시오.

마지막으로 Redmine 관리자 사용자의 세부 정보를 편집하고 "저장"을 클릭하여 구성을 적용합니다. 이제 Redmine의 기반을 구성했습니다.

새 프로젝트를 추가하려면 "프로젝트" 메뉴를 클릭하십시오. Redmine에서 프로젝트를 생성, 편집 또는 삭제할 수 있어야 합니다.

이제 Redmine에 구성을 추가하려면 "관리" 메뉴를 클릭하십시오. 이를 통해 더 많은 사용자를 추가하고, 그룹을 설정하고, 역할을 정의하고, LDAP와 같은 타사 응용 프로그램을 통해 인증을 활성화하는 등의 작업을 수행할 수 있습니다.

결론

이 자습서에서는 Ubuntu 22.04 서버에 Redmine 프로젝트 관리 및 문제 추적 도구를 설치하고 구성했습니다. Redmine용 MariaDB 데이터베이스와 Nginx 웹 서버도 구성했습니다. 또한 SSL 인증서로 Redmine 설치를 보호했습니다.

이제 시스템에 Redmine이 설치되어 있으므로 Redmine을 LDAP 인증 추가와 같은 현재 인프라에 통합하고 SVN, Git 및 Mercurial과 같은 SCM과 통합하는 것과 같은 몇 가지 추가 구성을 추가하여 Redmine 설치를 확장할 수 있습니다. 또한 조직이나 회사에 따라 역할을 추가할 수 있습니다.