이 가이드에서는 Centos 7 운영 체제를 실행하는 VPS 서버에 Redmine 애플리케이션을 설정했습니다. 임무는 작동하는 애플리케이션이 있는 기성 서버를 확보하고 필요한 경우 설정을 지우는 것입니다. 데이터베이스, 추가 패키지, Ruby를 설치하고 Nginx 웹 서버를 설정해야 합니다. 이 가이드에서는 루트로 설치합니다. 일반 루트가 있으면 sudo 명령을 사용하세요.
사전 구성된 서버 구성은 주문 양식에서 확인할 수 있습니다.
|
|
1. MariaDB 데이터베이스 설치
yum update
yum install epel-release
vi /etc/yum.repos.d/MariaDB.repo
아래 구성을 복사합니다
# MariaDB 10.9 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.9/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
서비스를 설치해 보겠습니다
yum install MariaDB-client MariaDB-server
systemctl enable mariadb.service
systemctl restart mariadb.service
새 데이터베이스 및 사용자 만들기
mysql
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'You_pasw0Rd-967';
mysql> EXIT;
2. 필수 패키지 설치
yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool
yum install readline-devel sqlite-devel zlib-devel openssl-devel readline glibc-headers glibc-devel
yum install mariadb-devel zlib libyaml-devel bzip2 ImageMagick ImageMagick-devel
yum install yum-utils pygpgme
yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
yum install nginx passenger passenger-devel nginx-mod-http-passenger
사용자를 추가해 보겠습니다:
useradd -m -U -r -d /opt/redmine redmine
usermod -a -G redmine nginx
chmod 750 /opt/redmine
3. 레드마인 설치
su - redmine
$gpg --keyserver keyserver.ubuntu.com --recv-key 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$curl -sSL https://get.rvm.io | bash -s stable
$source /opt/redmine/.rvm/scripts/rvm
$rvm install 2.7
$rvm --default use 2.7
$wget http://www.redmine.org/releases/redmine-4.2.8.tar.gz
$tar -xvf redmine-4.2.8.tar.gz
$cp /opt/redmine/redmine-4.2.8/config/database.yml.example /opt/redmine/redmine-4.2.8/config/database.yml
데이터베이스에 생성된 사용자에 따라 파일을 편집해보자:
$vi /opt/redmine/redmine-4.2.8/config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "You_pasw0Rd-967"
encoding: utf8
파일을 저장하고 필요한 패키지를 설치합니다
$cd ~/redmine-4.2.8
$gem install bundler
$bundle install --without development test postgresql sqlite
$bundle exec rake generate_secret_token
$RAILS_ENV=production bundle exec rake db:migrate
$exit
5. Nginx 설정
파일을 열고 거기에 구성을 붙여넣습니다:
#vi /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.2.8/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;
}
파일을 저장하고 기본 nginx 모듈 파일에서 중복된 줄을 주석 처리합니다:
vi /etc/nginx/conf.d/passenger.conf
#passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
#passenger_ruby /usr/bin/ruby;
#passenger_instance_registry_dir /var/run/passenger-instreg;
명령으로 구성을 확인하십시오
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx
systemctl enable nginx
완료되었습니다. 아래에서는 SSL 인증서 작업을 위한 nginx 구성을 제공했습니다. 가능한 경우 이를 사용하고 파일에 도메인을 지정하세요. 우리의 경우에는 IP 주소를 사용했습니다.
5.1 SSL 인증서로 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;
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/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/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.2.8/public;
SSL parameters
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/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;
}
설정을 적용하려면 서비스를 다시 시작하세요:
systemctl restart nginx
Redmine 설치가 성공적으로 완료되었습니다.