웹사이트 검색

CentOS 7에서 Nginx와 함께 Redmine 3를 설치하는 방법


Redmine은 프로젝트 관리 및 이슈 트래커를 위한 오픈 소스 웹 애플리케이션입니다. Redmine은 Ruby on Rails 프레임워크를 기반으로 하며 플랫폼 간 및 데이터베이스 간 지원을 제공하며 42개 언어로 번역되어 제공됩니다. 이 소프트웨어를 사용하면 여러 프로젝트를 추적할 수 있으며 뉴스, 문서 및 파일 관리와 프로젝트별 지원 위키를 통합합니다. 사용자 계정은 LDAP 디렉토리에 대해 인증될 수 있으며 타사 소프트웨어는 REST API를 통해 연결할 수 있습니다.

이 튜토리얼에서는 Nginx를 웹 서버로, MySQL을 데이터베이스 서버로 CentOS 7(64비트) 운영 체제에 Redmine 3.2를 설치합니다.

전제 조건

  • CentOS 7 - 64비트.
  • 루트 권한.

1단계 - Redmine 종속성 설치

Redmine에는 먼저 설치할 많은 종속성이 있습니다. 루트 사용자로 CentOS 7 서버에 로그인합니다.

ssh 

아래 yum 명령어를 사용하여 Redmine에 필요한 모든 종속 항목과 ruby 및 rvm에 필요한 패키지를 설치합니다.

yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion

설치 시 MySQL 암호를 묻습니다. 요청 시 새 MySQL 루트 암호를 입력합니다.

2단계 - Ruby 및 RVM 설치

이 단계에서는 rvm(최신 버전)과 ruby 2.2를 설치합니다. Redmine 3.2는 Ruby 버전 2.2를 지원합니다. RVM(Ruby Version Manager)은 동일한 서버에서 여러 Ruby 환경을 설치, 관리 및 작업할 수 있는 명령줄 도구입니다.

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5

설치가 완료되면 RVM을 다시 로드하고 자동 다시 로드를 위해 .bashrc 파일에 추가해야 합니다.

source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

.bashrc 파일을 다시 로드하고 Ruby 및 RVM 버전을 확인합니다.

source ~/.bashrc
ruby -v
rvm -v

3단계 - Redmine용 데이터베이스 구성

이 단계에서는 공식 MySQL 저장소에서 mysql-server 패키지를 설치합니다.

Oracle MySQL 리포지토리를 추가하고 리포지토리 목록을 확인합니다.

rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist

MySQL 서버 저장소가 성공적으로 추가되었는지 확인합니다.

이 yum 명령으로 MySQL 서버를 설치합니다.

yum install mysql-server

설치가 완료되면 mysqld 서비스를 시작하고 MySQL 루트 암호를 구성합니다.

systemctl start mysqld

Mysql 서버가 시작되었습니다. 이제 아래 grep 명령을 사용하여 mysql 서버의 임시 루트 암호를 얻습니다.

grep 'temporary password' /var/log/mysqld.log

다음과 유사한 결과가 표시됩니다.

2016-10-31T23:06:50.974555Z 1 [Note] A temporary password is generated for : />y.)uWui8j*

따라서 MySQL 서버의 루트 비밀번호는 다음과 같습니다. />y.)uWui8j*

이제 mysql 서버의 새 루트 비밀번호를 설정합니다. root 사용자와 생성된 암호로 mysql 셸에 로그인합니다.

mysql -u root -p
GENERATED PASSWORD: />y.)uWui8j*

아래의 mysql 쿼리를 사용하여 새 루트 사용자 비밀번호를 설정합니다.

ALTER USER 'root'@'localhost' IDENTIFIED BY '!';

다음으로 \redmine\이라는 새 데이터베이스를 생성하고 암호 redmine으로 새 사용자 redmine을 생성합니다(여기서 서버의 보안 암호 사용!). 그런 다음 사용자의 모든 권한을 redmine 데이터베이스에 부여합니다.

create database redmine;
create user !';
flush privileges;
exit

데이터베이스와 사용자가 생성되었습니다.

4단계 - Phusion Passenger 및 Nginx 설치

Phusion Passenger는 apache 및 nginx와 함께 사용할 수 있는 웹 응용 프로그램 서버입니다. Ruby, Python 및 Nodejs와 같은 여러 언어를 지원합니다. 그것은 우리에게 쉽고 빠르며 더 많은 트래픽을 처리할 수 있으며 보안 향상을 제공합니다.

이 장에서는 Phusion Passenger를 설치하고 nginx 웹 서버와 통합합니다. 아래의 gem 명령으로 승객을 설치한 다음 승객-nginx-module 명령을 실행합니다.

gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module

이 명령은 어떤 프로그래밍 언어를 사용할 것인지 묻습니다. RubyPython을 선택하십시오.

nginx 설치에 대한 질문을 받게 됩니다. \예: Nginx를 다운로드, 컴파일 및 설치합니다. (권장)\를 선택합니다.

nginx 설치 디렉토리를 묻는 메시지가 표시되면 기본 /opt/nginx/을 사용하고 \Enter\를 누르기만 하면 됩니다.

5단계 - Nginx 구성

nginx 설치가 완료되면 설치 디렉토리로 이동하여 nginx.conf 파일을 편집기로 편집합니다.

cd /opt/nginx/
cd conf/
vim nginx.conf

아래 구성을 24행에 붙여넣습니다.

include vhost/*.conf;

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

가상 호스트 구성을 위한 새 가상 호스트 디렉토리를 만듭니다.

mkdir -p /opt/nginx/conf/vhost

가상 호스트 디렉터리로 이동하고 vim으로 redmine 가상 호스트 구성을 만듭니다.

cd /opt/nginx/conf/vhost/
vim redmine.conf

아래에 가상 호스트 구성을 붙여넣습니다.

    server {
        listen       80;
        server_name  www.redmine.me;

        root /var/www/redmine/public;
        passenger_enabled on;
        client_max_body_size      10m; # Max attachemnt size

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

파일을 저장합니다.

Ubuntu 16.04는 systemd를 초기화 시스템으로 사용합니다. 다음으로 systemd용 nginx를 구성합니다. systemd 디렉터리로 이동하여 nginx.service라는 새 서비스 파일을 만듭니다.

cd /lib/systemd/system/
vim nginx.service

아래 systemd용 nginx 스크립트를 붙여넣습니다.

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

저장 및 종료.

systemd 서비스를 다시 로드하고 systemctl 명령으로 nginx를 시작합니다.

systemctl daemon-reload
systemctl start nginx

nginx를 확인하려면 열린 포트 80을 확인하십시오.

netstat -plntu | grep nginx

결과는 다음과 같아야 합니다.

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4871/nginx

6단계 - Redmine 설치

Redmine 설치를 위한 새 디렉토리를 만듭니다. 여기서는 /var/www/ 디렉토리를 사용하겠습니다.

mkdir -p /var/www/

/var/www/ 디렉토리로 이동하여 svn 명령으로 Redmine을 다운로드합니다.

cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine

Redmine 디렉토리로 이동하여 구성 파일과 데이터베이스 구성 파일을 복사합니다.

cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

vim으로 database.yml 파일을 편집합니다.

vim config/database.yml

프로덕션 섹션 행에서 데이터베이스 이름 사용자 및 비밀번호를 입력하십시오.

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "!"
  encoding: utf8

파일을 저장합니다.

redmine 디렉토리에서 새 디렉토리를 만들고 소유자를 사용자 및 그룹 nobody로 변경합니다.

mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets

redmine용 번들러 및 gem 종속 항목을 설치합니다.

gem install bundler
bundle install --without development test

비밀 토큰을 생성한 다음 데이터베이스를 생성합니다.

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

nginx를 다시 시작하고 웹 브라우저로 redmine 도메인 이름을 방문합니다.

systemctl restart nginx

redmine 설치를 방문하십시오. 광산은 www.redmine.co입니다.

관리자 페이지에 로그인: www.redmine.co/login

기본 사용자 및 암호는 admin입니다.

새 샘플 프로젝트를 만듭니다.

샘플 프로젝트 페이지.

CentOS 7에서 Nginx 및 MySQL과 함께 Redmine을 성공적으로 설치했습니다.

결론

Redmine은 프로젝트 관리 및 문제 추적을 위한 웹 기반 애플리케이션입니다. Redmine은 크로스 플랫폼이므로 Windows, Linux 또는 Mac OS에서 실행할 수 있습니다. Redmine은 MySQL, PostgreSQL, Microsoft SQL Server 및 SQLite와 같은 많은 데이터베이스를 지원합니다. Redmine은 설치 및 구성이 쉽고 Apache 또는 Nginx를 웹 서버로 사용할 수 있습니다. Redmine은 매우 강력하며 다국어 지원, 파일 관리, 위키 및 REST API와 같은 많은 기능을 가지고 있습니다. Redmine은 문제 추적을 통해 자체 프로젝트 관리를 구축하려는 경우 최고의 무료 솔루션 중 하나입니다.