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 액세스
브라우저를 열고 도메인을 입력하면 설치가 성공했다고 가정하면 다음과 유사한 화면이 나타납니다.
Redmine의 기본 로그인 자격 증명은 다음과 같습니다.
username : admin
password : admin
처음 로그인할 때 아래와 같이 암호를 변경하라는 메시지가 표시됩니다.
암호를 변경하면 사용자 계정 페이지로 리디렉션됩니다.
'SW > 리눅스' 카테고리의 다른 글
CentOS 7 : WordPress with Apache 설치 방법, 예제, 명령어 (0) | 2021.05.11 |
---|---|
Debian 9 : Visual Studio Code 설치 방법, 예제, 명령어 (0) | 2021.05.10 |
Linux : Bash 함수 사용 방법, 예제, 명령어 (0) | 2021.05.08 |
CentOS 7 : FFmpeg 설치, 사용 방법, 예제, 명령어 (0) | 2021.05.07 |
Linux : Tee 명령어 예제들 알아보기 (0) | 2021.05.06 |