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
이 명령은 어떤 프로그래밍 언어를 사용할 것인지 묻습니다. Ruby 및 Python을 선택하십시오.
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은 문제 추적을 통해 자체 프로젝트 관리를 구축하려는 경우 최고의 무료 솔루션 중 하나입니다.