<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=CentOS_redmine_git</id>
	<title>CentOS redmine git - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=CentOS_redmine_git"/>
	<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=CentOS_redmine_git&amp;action=history"/>
	<updated>2026-04-21T08:10:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://workspace.onionmixer.net/wiki/index.php?title=CentOS_redmine_git&amp;diff=1485&amp;oldid=prev</id>
		<title>Onionmixer: subtitle 변경</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=CentOS_redmine_git&amp;diff=1485&amp;oldid=prev"/>
		<updated>2018-08-21T08:29:06Z</updated>

		<summary type="html">&lt;p&gt;subtitle 변경&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;CentOS 7 에서 nginx + thin + redmine 3.4 + postgresql + redmine_git_hosting 사용하기&lt;br /&gt;
&lt;br /&gt;
==개요==&lt;br /&gt;
&lt;br /&gt;
이 문서는 CentOS 7.4 에서 redmine 과 postgresql 을 설치하는 내용을 다룬다. 각 OS 에 대한 특징인 부분은 설명하지 않는다.&lt;br /&gt;
&lt;br /&gt;
이 문서는 *설치* 및 *최소한의 세팅* 에 대해서만 다루고 있다. redmine 설치 이후의 plugin 사용등에 대한 내용은 인터넷을 참고하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==요구 사항==&lt;br /&gt;
&lt;br /&gt;
이 문서의 내용은 다음과 같은 software 및 환경을 전제로 하고 있다.&lt;br /&gt;
&lt;br /&gt;
* CentOS 7.4 가 설치된 시스템&lt;br /&gt;
* selinux disable&lt;br /&gt;
* ruby 2.5.1&lt;br /&gt;
* redmine 3.4&lt;br /&gt;
* postgresql 9.6&lt;br /&gt;
* thin web app server&lt;br /&gt;
* email 알림에 사용할 gmail 계정&lt;br /&gt;
&lt;br /&gt;
===directory location===&lt;br /&gt;
&lt;br /&gt;
* redmine basement&lt;br /&gt;
** /home/redmine/redmine_base&lt;br /&gt;
* pgsql database basement&lt;br /&gt;
** /var/lib/pgsql/9.6/data&lt;br /&gt;
* git basement&lt;br /&gt;
** /home/git&lt;br /&gt;
&lt;br /&gt;
===account info===&lt;br /&gt;
&lt;br /&gt;
* Redmine 유지용 계정&lt;br /&gt;
** id : redmine&lt;br /&gt;
* git 유지용 계정&lt;br /&gt;
** id : git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==환경준비==&lt;br /&gt;
&lt;br /&gt;
이 장에서 설명하는 내용은 모두 root 권한으로 해야한다.&lt;br /&gt;
&lt;br /&gt;
===selinux 끄기===&lt;br /&gt;
&lt;br /&gt;
터미널등에서 다음의 명령을 실행한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
setenforce 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/sysconfig/selinux&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
SELINUX=disabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===방화벽 열기===&lt;br /&gt;
&lt;br /&gt;
여기서는 8080 port 를 redmine 의 접근 port 로 사용할 것이기 때문에, 다음의 명령어로 port 를 방화벽 규칙에 추가한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=8080/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=8080/udp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==소프트웨어 설치==&lt;br /&gt;
&lt;br /&gt;
===OS repository 제공 프로그램의 설치===&lt;br /&gt;
&lt;br /&gt;
postgreSQL 9.6 의 설치를 위해 외부 repository 를 세팅하고, epel 패키지를 사용할 수 있도록 설정한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm&lt;br /&gt;
yum update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
본 시스템에서 사용할 소프트웨어를 설치한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
yum install nginx nginx-all-modules  -y&lt;br /&gt;
yum install postgresql96 postgresql96-devel postgresql96-server postgresql96-contrib -y&lt;br /&gt;
yum install curl zlib-devel curl-devel openssl-devel apr-devel apr-util-devel ftp wget ImageMagick-devel gcc gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison subversion git libgit2 libgit2-devel libssh2 libssh2-devel python-docutils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
postgreSQL 데이터베이스를 초기화한다. epel 이 설정되지 않았다면 libgit2 를 사용할 수 없기 때문에 이후의 설치과정에서 문제가 생긴다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/pgsql-9.6/bin/postgresql96-setup initdb&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
posgreSQL DB 의 접속파일을 편집한다. &amp;#039;&amp;#039;&amp;#039;/var/lib/pgsql/9.6/data/pg_hba.conf&amp;#039;&amp;#039;&amp;#039; 파일의 아래쪽을 보면 아래와 같은 내용이 있는데 host 로 시작되는 2개 부분을 trust 로 변경해준다. 변경 후 내용은 다음과 같아야 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;quot;local&amp;quot; is for Unix domain socket connections only&lt;br /&gt;
local   all             all                                     peer&lt;br /&gt;
# IPv4 local connections:&lt;br /&gt;
host    all             all             127.0.0.1/32            trust&lt;br /&gt;
# IPv6 local connections:&lt;br /&gt;
host    all             all             ::1/128                 trust&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
postgreSQL 데이터베이스를 시스템 부팅시 자동시작으로 세팅하고 DB 엔진을 시작한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
systemctl start postgresql-9.6&lt;br /&gt;
systemctl enable postgresql-9.6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다음의 과정을 통해 postgreSQL 에서 쓰기 원하는 데이터베이스를 생성한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
sudo su - postgres&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/pgsql-9.6/bin/:$PATH&lt;br /&gt;
&lt;br /&gt;
psql&lt;br /&gt;
&lt;br /&gt;
psql (9.6.9)&lt;br /&gt;
Type &amp;quot;help&amp;quot; for help.&lt;br /&gt;
&lt;br /&gt;
postgres=# alter role postgres with encrypted password &amp;#039;POSTGRESQL 관리자 비밀번호&amp;#039;;&lt;br /&gt;
postgres=# create user redmine with encrypted password &amp;#039;redmine 에 사용할 사용자 비밀번호&amp;#039;;&lt;br /&gt;
postgres=# create database redmine with encoding &amp;#039;UTF-8&amp;#039; owner redmine;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ruby 의 설치===&lt;br /&gt;
&lt;br /&gt;
아래의 과정을 통해 ruby 를 설치한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
wget https://github.com/feedforce/ruby-rpm/releases/download/2.5.1/ruby-2.5.1-1.el7.centos.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
rpm -i ruby-2.5.1-1.el7.centos.x86_64.rpm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
아래의 명령어로 ruby 를 운영하기 위한 최소한의 환경을 설치한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
gem install bundler&lt;br /&gt;
gem install tzinfo-data&lt;br /&gt;
gem install yard&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmine 운영을 위한 계정생성 및 기본값 설정===&lt;br /&gt;
&lt;br /&gt;
아래의 명령으로 redmine 운영에 필요한 기본 계정을 생성한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
adduser --home /home/redmine --shell /bin/bash --comment &amp;#039;Redmine application&amp;#039; redmine&lt;br /&gt;
install -d -m 755 -o redmine -g redmine /home/redmine&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmine 데이터베이스 세팅을 위한 초기 redmine 설정===&lt;br /&gt;
&lt;br /&gt;
아래의 과정은 redmine 계정으로 진행해야 함을 주의하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - redmine&lt;br /&gt;
cd /home/redmine&lt;br /&gt;
svn co http://svn.redmine.org/redmine/branches/3.4-stable redmine_base&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
redmine 을 subversion 을 통해 받아왔다면, 기본 데이터베이스를 설정하도록 한다. &amp;#039;&amp;#039;&amp;#039;/home/redmine/redmine_base/config/database.yml&amp;#039;&amp;#039;&amp;#039; 파일의 내용을 다음과 같이 설정한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
production:&lt;br /&gt;
  adapter: postgresql&lt;br /&gt;
  database: redmine&lt;br /&gt;
  host: localhost&lt;br /&gt;
  username: redmine&lt;br /&gt;
  password: &amp;quot;pgsql 의 redmine 계정의 비밀번호&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmine email 알림을 위한 위한 초기 redmine 설정===&lt;br /&gt;
&lt;br /&gt;
아래의 과정은 redmine 계정으로 진행해야 함을 주의하도록 한다. &amp;#039;&amp;#039;&amp;#039;/home/redmine/redmine_base/config/configuration.yml&amp;#039;&amp;#039;&amp;#039; 파일의 내용을 다음과 같이 설정한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
scm_git_command : /usr/bin/git&lt;br /&gt;
&lt;br /&gt;
.....&lt;br /&gt;
.....&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
production:&lt;br /&gt;
  email_delivery:&lt;br /&gt;
    delivery_method: :smtp&lt;br /&gt;
    smtp_settings:&lt;br /&gt;
      enable_starttls_auto: true&lt;br /&gt;
      address: &amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
      port: 587&lt;br /&gt;
      domain: &amp;quot;smtp.gmail.com&amp;quot;&lt;br /&gt;
      authentication: :plain&lt;br /&gt;
      openssl_verify_mode: &amp;#039;none&amp;#039;&lt;br /&gt;
      user_name: &amp;quot;GMAIL계정이름(@gmail.com포함)&amp;quot;&lt;br /&gt;
      password: &amp;quot;GMAIL계정비밀번호&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 기능을 사용하기 위해서는 미리 gmail 계정을 만들고 imap 세팅을 해두어야 함을 명심하도록 한다. gmail 에서의 세팅은 다음의 경로를 참고한다.&lt;br /&gt;
&lt;br /&gt;
* https://productforums.google.com/forum/#!topic/gmail/9KCgzXY4G_c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmine 을 위한 ruby 패키지의 설치===&lt;br /&gt;
&lt;br /&gt;
database 설정파일의 저장이 완료되었다면 root 권한으로 아래의 내용을 진행하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - root&lt;br /&gt;
&lt;br /&gt;
cd /home/redmine/redmine_base&lt;br /&gt;
bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32&lt;br /&gt;
bundle lock --add-platform java&lt;br /&gt;
echo &amp;#039;gem &amp;quot;thin&amp;quot;&amp;#039; &amp;gt;&amp;gt; /home/redmine/redmine_base/Gemfile&lt;br /&gt;
bundle config build.pg --with-pg-config=/usr/pgsql-9.6/bin/pg_config&lt;br /&gt;
gem install rugged -v=&amp;#039;0.26&amp;#039; -- --use-system-libraries&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
환경(network 속도등)에 따라 시간이 꽤 오래 걸리는 경우도 있기 때문에 끈기를 가지고 기다리도록 한다.&lt;br /&gt;
&lt;br /&gt;
rugged 의 0.26 설치에 문제가 있다면 이 문서의 가장 아래쪽을 참고하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmine 사용을 위한 database 의 초기설정===&lt;br /&gt;
&lt;br /&gt;
아래의 과정을 통해 database 설정을 진행하도록 한다. redmine 계정으로 진행해야 한다는걸 주의하자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - redmine&lt;br /&gt;
&lt;br /&gt;
cd /home/redmine/redmine_base&lt;br /&gt;
yard config --gem-install-yri&lt;br /&gt;
cd /home/redmine/redmine_base/config/&lt;br /&gt;
&lt;br /&gt;
RAILS_ENV=production bundle exec rake generate_secret_token&lt;br /&gt;
RAILS_ENV=production bundle exec rake db:migrate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===redmine 의 기본 동작확인===&lt;br /&gt;
&lt;br /&gt;
아래의 명령으로 redmine 의 기본 동작을 확인한다 ruby 의 rack 패키지를 이용한 방법이다. 기본 port 가 3000 번 이기 때문에, 웹브라우저를 열어 해당되는 내용을 참고하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - redmine&lt;br /&gt;
cd /home/redmine/redmine_base&lt;br /&gt;
/usr/bin/ruby bin/rails server -b 0.0.0.0 -e production&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
web 페이지가 뜬다면 redmine 의 기본 설치는 제대로 되었다고 볼 수 있다.&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;접속이 안된다면 cetnos 의 방화벽을 확인해 보아야 한다&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===nginx 와의 연동을 위한 thin 서버의 설치===&lt;br /&gt;
&lt;br /&gt;
다음의 명령어로 thin 을 설치한다. 하지만 &amp;#039;&amp;#039;&amp;#039;gem list | grep thin&amp;#039;&amp;#039;&amp;#039; 명령어로 thin 이 이미 설치되어 있다면 설치과정을 진행할 필요는 없다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
gem install thin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==redmine 운영을 위한 환경설정==&lt;br /&gt;
&lt;br /&gt;
===nginx===&lt;br /&gt;
&lt;br /&gt;
먼저 다음의 명령으로 &amp;#039;&amp;#039;&amp;#039;proxy.include&amp;#039;&amp;#039;&amp;#039; 파일이 들어갈 디렉토리를 생성한다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/nginx/sites/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/nginx/sites/proxy.include&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
        proxy_set_header   Host $http_host;&lt;br /&gt;
        proxy_set_header   X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header   X-Forwarded-Proto $scheme;&lt;br /&gt;
&lt;br /&gt;
        proxy_connect_timeout      90;&lt;br /&gt;
        proxy_send_timeout         90;&lt;br /&gt;
        proxy_read_timeout         90;&lt;br /&gt;
&lt;br /&gt;
        proxy_buffer_size          4k;&lt;br /&gt;
        proxy_buffers              4 32k;&lt;br /&gt;
        proxy_busy_buffers_size    64k;&lt;br /&gt;
        proxy_temp_file_write_size 64k;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/nginx/conf.d/10_redmine.conf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
upstream thin_cluster {&lt;br /&gt;
                server unix:/home/redmine/tmp/thin.0.sock fail_timeout=0;&lt;br /&gt;
                server unix:/home/redmine/tmp/thin.1.sock fail_timeout=0;&lt;br /&gt;
                server unix:/home/redmine/tmp/thin.2.sock fail_timeout=0;&lt;br /&gt;
                server unix:/home/redmine/tmp/thin.3.sock fail_timeout=0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
                listen 8080;&lt;br /&gt;
                server_name 당신의DOMAIN;&lt;br /&gt;
&lt;br /&gt;
                include sites/proxy.include;&lt;br /&gt;
                root /home/redmine/redmine_base/public;&lt;br /&gt;
                proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
                location / {&lt;br /&gt;
                        try_files $uri @cluster;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                location @cluster {&lt;br /&gt;
                        proxy_pass http://thin_cluster;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                location /javascripts {&lt;br /&gt;
                        alias /home/redmine/redmine_base/public/javascripts;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                access_log  /var/log/nginx/redmine-proxy-access;&lt;br /&gt;
                error_log   /var/log/nginx/redmine-proxy-error;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/nginx/nginx.conf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# For more information on configuration, see:&lt;br /&gt;
#   * Official English Documentation: http://nginx.org/en/docs/&lt;br /&gt;
#   * Official Russian Documentation: http://nginx.org/ru/docs/&lt;br /&gt;
&lt;br /&gt;
user redmine redmine;&lt;br /&gt;
worker_processes auto;&lt;br /&gt;
error_log /var/log/nginx/error.log;&lt;br /&gt;
pid /run/nginx.pid;&lt;br /&gt;
&lt;br /&gt;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.&lt;br /&gt;
include /usr/share/nginx/modules/*.conf;&lt;br /&gt;
&lt;br /&gt;
events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
http {&lt;br /&gt;
    log_format  main  &amp;#039;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &amp;#039;&lt;br /&gt;
                      &amp;#039;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &amp;#039;&lt;br /&gt;
                      &amp;#039;&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    access_log  /var/log/nginx/access.log  main;&lt;br /&gt;
&lt;br /&gt;
    sendfile            on;&lt;br /&gt;
    tcp_nopush          on;&lt;br /&gt;
    tcp_nodelay         on;&lt;br /&gt;
    keepalive_timeout   65;&lt;br /&gt;
    types_hash_max_size 2048;&lt;br /&gt;
&lt;br /&gt;
    include             /etc/nginx/mime.types;&lt;br /&gt;
    default_type        application/octet-stream;&lt;br /&gt;
&lt;br /&gt;
    # Load modular configuration files from the /etc/nginx/conf.d directory.&lt;br /&gt;
    # See http://nginx.org/en/docs/ngx_core_module.html#include&lt;br /&gt;
    # for more information.&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
&lt;br /&gt;
    server {&lt;br /&gt;
        listen       80 default_server;&lt;br /&gt;
        listen       [::]:80 default_server;&lt;br /&gt;
        server_name  _;&lt;br /&gt;
        root         /usr/share/nginx/html;&lt;br /&gt;
&lt;br /&gt;
        # Load configuration files for the default server block.&lt;br /&gt;
        include /etc/nginx/default.d/*.conf;&lt;br /&gt;
&lt;br /&gt;
        location / {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        error_page 404 /404.html;&lt;br /&gt;
            location = /40x.html {&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        error_page 500 502 503 504 /50x.html;&lt;br /&gt;
            location = /50x.html {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===thin 서버의 설정===&lt;br /&gt;
&lt;br /&gt;
일단 디렉토리부터 생성하자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/thin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
아래의 설정파일은 redmine 소유로 지정해주는것이 좋다. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/thin/redmine.yml&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
pid: /home/redmine/tmp/pids/thin.pid&lt;br /&gt;
group: redmine&lt;br /&gt;
wait: 30&lt;br /&gt;
timeout: 30&lt;br /&gt;
log: /var/log/thin.log&lt;br /&gt;
max_conns: 1024&lt;br /&gt;
require: []&lt;br /&gt;
&lt;br /&gt;
environment: production&lt;br /&gt;
max_persistent_conns: 512&lt;br /&gt;
servers: 4&lt;br /&gt;
daemonize: true&lt;br /&gt;
user: redmine&lt;br /&gt;
socket: /home/redmine/tmp/thin.sock&lt;br /&gt;
chdir: /home/redmine/redmine_base&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
소유 권한을 변경해주자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
chown -R redmine.redmine /etc/thin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===thin 서버의 시험 구동===&lt;br /&gt;
&lt;br /&gt;
다음의 명령어로 thin 서버의 기본 구동을 확인한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[redmine@localhost ~/] cd /home/redmine/redmine_base&lt;br /&gt;
[redmine@localhost redmine_base]$ thin -c /home/redmine/redmine_base -e production start&lt;br /&gt;
Using rack adapter&lt;br /&gt;
Thin web server (v1.7.2 codename Bachmanity)&lt;br /&gt;
Maximum connections set to 1024&lt;br /&gt;
Listening on 0.0.0.0:3000, CTRL+C to stop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
서버의 구동을 확인했다면 다음의 명령으로 디렉토리의 퍼미션을 조절해준다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /home/redmine/tmp&lt;br /&gt;
chown -R redmine:redmine /home/redmine/tmp&lt;br /&gt;
chmod -R 777 /home/redmine/tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
혹시 옆쪽의 web browser 에서 연결이 안된다면 CentOS 7 의 방화벽 때문일 수 있다. 방화벽에 열어야할 port 를 추가해준다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=3000/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=3000/udp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
일단 3000 번 port 로 web browser 를 통해서 열린다면, 다음의 명령어로 설정파일을 통해 thin 을 구동한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
thin -C /etc/thin/redmine.yml start&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cat /var/log/thin.0.log&amp;#039;&amp;#039;&amp;#039; 명령으로 thin 서버의 구동을 확인한다. 다음과 같은 내용을 확인할 수 있으면 thin 서버는 성공이다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Writing PID to /home/redmine/tmp/pids/thin.0.pid&lt;br /&gt;
Changing process privilege to redmine:redmine&lt;br /&gt;
Using rack adapter&lt;br /&gt;
Thin web server (v1.7.2 codename Bachmanity)&lt;br /&gt;
Maximum connections set to 1024&lt;br /&gt;
Listening on /home/redmine/tmp/thin.0.sock, CTRL+C to stop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===thin 및 nginx 서버의 구동 설정===&lt;br /&gt;
&lt;br /&gt;
nginx 는 다음의 명령어로 시스템 시작시 및 현 시점 구동을 설정할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable nginx&lt;br /&gt;
systemctl start nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
기본적으로 우리는 thin 을 ruby gem 을 통해 설치했기 때문에 systemd 에서 해당되는 스크립트를 사용할 수 없는 상태다. 때문에 일단 &amp;#039;&amp;#039;&amp;#039;thin.service&amp;#039;&amp;#039;&amp;#039; 스크립트를 만들어준다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=A fast and very simple Ruby web server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type             =simple&lt;br /&gt;
ExecStart       =/usr/local/bin/thin_start.sh&lt;br /&gt;
ExecStop        =/usr/local/bin/thin_stop.sh&lt;br /&gt;
PIDFile         = /home/redmine/tmp/pids/thin.0.pid&lt;br /&gt;
Restart         =no&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 &amp;#039;&amp;#039;&amp;#039;thin.service&amp;#039;&amp;#039;&amp;#039; 에서 사용하기 위한 2개의 추가 스크립트 파일을 만들어 준다.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/usr/local/bin/thin_start.sh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/usr/bin/thin start --all /etc/thin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/usr/local/bin/thin_stop.sh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/usr/bin/thin stop --all /etc/thin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
만들어진 스크립트에 실행권한을 부여해준다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x /usr/local/bin/thin_start.sh&lt;br /&gt;
chmod +x /usr/local/bin/thin_stop.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
스크립트를 다 만들었으면 아래의 과정을 통해 만든 thin.service 파일을 설치한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
systemctl disable thin.service&lt;br /&gt;
rm -rf /usr/lib/systemd/system/thin.service&lt;br /&gt;
rm -rf /lib/systemd/system/thin.service&lt;br /&gt;
rm -rf /etc/systemd/system/default.target.wants/thin.service&lt;br /&gt;
rm -rf /etc/systemd/system/multi-user.target.wants/thin.service&lt;br /&gt;
&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
cp ./thin.service /lib/systemd/system/&lt;br /&gt;
chmod 644 /lib/systemd/system/thin.service&lt;br /&gt;
chown root:root /lib/systemd/system/thin.service&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/redmine/tmp&lt;br /&gt;
chown -R redmine.redmine /home/redmine/tmp&lt;br /&gt;
chmod -R 777 /home/redmine/tmp&lt;br /&gt;
&lt;br /&gt;
systemctl enable thin.service&lt;br /&gt;
systemctl start thin.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==기본 동작의 확인==&lt;br /&gt;
&lt;br /&gt;
당신이 세팅한 domain 으로 접속을 해보자. port 번호는 8080 이다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
http://당신의DOMAIN:8080&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
웹 페이지가 뜨면 성공.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==추가 세팅==&lt;br /&gt;
&lt;br /&gt;
===redmine plugin 의 설치===&lt;br /&gt;
&lt;br /&gt;
다음의 명령으로 redmine plugin 을 설치한다. 물론 &amp;#039;&amp;#039;&amp;#039;redmine 계정&amp;#039;&amp;#039;&amp;#039; 으로 해야한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/redmine/redmine_base/plugins&lt;br /&gt;
git clone https://github.com/jbox-web/redmine_bootstrap_kit.git&lt;br /&gt;
cd redmine_bootstrap_kit/&lt;br /&gt;
git checkout 0.2.5&lt;br /&gt;
&lt;br /&gt;
cd /home/redmine/redmine_base/plugins&lt;br /&gt;
git clone https://github.com/jbox-web/redmine_git_hosting.git&lt;br /&gt;
cd redmine_git_hosting/&lt;br /&gt;
git checkout 1.2.3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
주의해줘야할 부분이 있는데 git plugin 을 위해서 redcarpet 버전이 안맞는 부분이 있다 해당되는 부분을 수정해 주는것이 좋다.&lt;br /&gt;
&lt;br /&gt;
* /home/redmine/redmine_base/Gemfile&lt;br /&gt;
** Gemfile 에서 redcarpet 지정부분을 3.4.0 에서 3.3.2 버전으로 수정&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plugin 파일의 다운로드가 끝났다면, 다시 &amp;#039;&amp;#039;&amp;#039;root 계정&amp;#039;&amp;#039;&amp;#039; 으로 이동하자. 일단 Plugin 의 설치를 위해 cmake 를 설치한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
yum install cmake -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cmake 의 설치가 끝났다면 아래의 과정을 진행해서 플러그인에 필요한 ruby 패키지 설정을 진행하자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/redmine/redmine_base&lt;br /&gt;
bundle install --without development test&lt;br /&gt;
bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_git_hosting&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ruby bundle 작업이 끝났다면 redmine 계정으로 thin 을 재시작하고(systemctl stop thin; systemctl start thin;) redmine web 페이지의 admin 계정에서 &amp;#039;&amp;#039;&amp;#039;관리&amp;#039;&amp;#039;&amp;#039; 로 들어가서 &amp;#039;&amp;#039;&amp;#039;redmine git hosting&amp;#039;&amp;#039;&amp;#039; 항목이 보이는지 확인하자.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==git 연동을 위한 Plugin 의 세팅==&lt;br /&gt;
&lt;br /&gt;
===git 운영을 위한 계정생성 및 기본값 설정===&lt;br /&gt;
&lt;br /&gt;
아래의 명령으로 git 운영에 필요한 기본 계정을 생성한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
adduser  --home /home/git --shell /bin/bash --comment &amp;#039;Git Main Account&amp;#039; git&lt;br /&gt;
install -d -m 755 -o git -g git /home/git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===git 운영을 위한 sshd 설정파일의 변경===&lt;br /&gt;
&lt;br /&gt;
git 을 편하게 사용하기 위해서는 sshd 의 설정을 변경해 주는것이 좋다.&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
PubkeyAuthentication yes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
물론 설정한 다음에는 systemctl 을 이용해서 sshd 를 재시작 해줘야 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart sshd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===git 운영을 위한 ssh key 파일의 생성===&lt;br /&gt;
&lt;br /&gt;
서버에서 다음의 방밥으로 키를 생성한다. key 는 $REDMINE_ACCOUNT_HOME 에서 진행하면 된다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - redmine&lt;br /&gt;
mkdir ssh_keys&lt;br /&gt;
ssh-keygen -N &amp;#039;&amp;#039; -f ssh_keys/redmine_gitolite_admin_id_rsa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
생성된 key 는 $REDMINE_ACCOUNT_HOME/ssh_keys 에 저장되게 된다.&lt;br /&gt;
&lt;br /&gt;
해당되는 key 를 미리 git 계정으로 복사해 둔다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - root&lt;br /&gt;
mkdir /home/git/.ssh&lt;br /&gt;
cp /home/redmine/ssh_keys/* /home/git/.ssh/&lt;br /&gt;
chown -R git:git /home/git/.ssh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===git 운영을 위한 gitolite 의 설치 및 세팅===&lt;br /&gt;
&lt;br /&gt;
생성한 git 계정에서 gitolite 를 설치한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - git&lt;br /&gt;
mkdir $HOME/bin&lt;br /&gt;
git clone git://github.com/sitaramc/gitolite&lt;br /&gt;
gitolite/install -to $HOME/bin&lt;br /&gt;
cd ~/.ssh&lt;br /&gt;
gitolite setup -pk redmine_gitolite_admin_id_rsa.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
gitorite 의 설정파일을 추가로 설정해준다.&lt;br /&gt;
&lt;br /&gt;
* /home/git/.gitolite.rc&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
GIT_CONFIG_KEYS  =&amp;gt;  &amp;#039;.*&amp;#039;,&lt;br /&gt;
LOCAL_CODE                =&amp;gt;  &amp;quot;$ENV{HOME}/local&amp;quot;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
git 계정의 .ssh 에 redmine_gitolite_admin_id_rsa.pub 키가 제대로 복사되었는지를 한번만 더 확인합니다. 위의 &amp;#039;&amp;#039;&amp;#039;gitolite setup -pk redmine_gitolite_admin_id_rsa.pub&amp;#039;&amp;#039;&amp;#039; 과정에서 자동으로 git 계정의 ~/authorized_keys 파일이 생성되기 때문에 이 부분의 세팅은 주의하도록 합니다.&lt;br /&gt;
&lt;br /&gt;
===운영을 위한 sudo 의 설정===&lt;br /&gt;
&lt;br /&gt;
* /etc/sudoers.d/redmine&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Defaults:redmine !requiretty&lt;br /&gt;
redmine ALL=(git) NOPASSWD:ALL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이후에 파일을 chmod 하십시오.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
chmod 440 /etc/sudoers.d/redmine&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===known_hosts 목록에 Gitolite 서버 추가===&lt;br /&gt;
&lt;br /&gt;
아래의 명령으로 redmine 계정에 git 관련된 정보를 known_host 로 추가합니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - redmine&lt;br /&gt;
redmine$ ssh -i ssh_keys/redmine_gitolite_admin_id_rsa git@localhost info&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
아래와 비슷한 내용을 볼 수 있어야 합니다.&lt;br /&gt;
&lt;br /&gt;
[[image:redmine_gito_01.png|640px|git repository key authentication]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Redmine Git hosting 추가모듈 설치===&lt;br /&gt;
&lt;br /&gt;
Redmine Git hosting 추가모듈 설치를 위해 아래의 명령을 실행한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
su - redmine&lt;br /&gt;
cd /home/redmine/redmine_base/&lt;br /&gt;
RAILS_ENV=production rake redmine_git_hosting:restore_default_settings&lt;br /&gt;
RAILS_ENV=production rake redmine_git_hosting:install_hook_files&lt;br /&gt;
RAILS_ENV=production rake redmine_git_hosting:install_hook_parameters&lt;br /&gt;
RAILS_ENV=production rake redmine_git_hosting:install_gitolite_hooks&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==redmine 의 gitorite 관련 설정==&lt;br /&gt;
&lt;br /&gt;
아래의 내용은 redmine 의 &amp;#039;&amp;#039;&amp;#039;admin&amp;#039;&amp;#039;&amp;#039; 사용자로 로그인해서 진행해야 합니다.&lt;br /&gt;
&lt;br /&gt;
===redmine git hosting plugin===&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; Redmine Git Hosting &amp;gt; ssh tab&lt;br /&gt;
** 스크린샷처럼 ssh key 에 대한 위치를 &amp;#039;&amp;#039;&amp;#039;정확하게&amp;#039;&amp;#039;&amp;#039; 지정한다.&lt;br /&gt;
[[image:redmine_gito_02.png|640px|Redmine Git Hosting &amp;gt; ssh tab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; Redmine Git Hosting &amp;gt; global tab&lt;br /&gt;
** git Author email 을 지정한다.&lt;br /&gt;
[[image:redmine_gito_03.png|640px|Redmine Git Hosting &amp;gt; gloabl tab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; Redmine Git Hosting &amp;gt; access tab&lt;br /&gt;
** ssh 접근 domain 과 http 서버 주소를 입력해준다.(port 포함)&lt;br /&gt;
[[image:redmine_gito_04.png|640px|Redmine Git Hosting &amp;gt; access tab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; Redmine Git Hosting &amp;gt; cache tab&lt;br /&gt;
** Max chche time 을 disable 시킨다&lt;br /&gt;
[[image:redmine_gito_06.png|640px|Redmine Git Hosting &amp;gt; cache tab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; Redmine Git Hosting &amp;gt; redmie tab&lt;br /&gt;
** redmine 에 맞게 값을 설정한다.&lt;br /&gt;
[[image:redmine_gito_07.png|640px|Redmine Git Hosting &amp;gt; redmine tab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; Redmine Git Hosting &amp;gt; Config Test tab&lt;br /&gt;
** 전체 설정이 이상 없는지를 점검한다.&lt;br /&gt;
[[image:redmine_gito_09.png|640px|Redmine Git Hosting &amp;gt; Config Test tab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; Redmine Git Hosting &amp;gt; Hooks tab&lt;br /&gt;
** Hooks URL 부분을 redmine web 의 URL 로 변경해준다&lt;br /&gt;
** 옆쪽의 &amp;#039;&amp;#039;&amp;#039;Install hooks&amp;#039;&amp;#039;&amp;#039; 부분을 눌러 hook 의 설치를 진행한다.&lt;br /&gt;
[[image:redmine_gito_10.png|640px|Redmine Git Hosting &amp;gt; Hooks tab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmine 저장소 설정===&lt;br /&gt;
&lt;br /&gt;
* 관리 &amp;gt; 설정 &amp;gt; 저장소&lt;br /&gt;
** git plugin 대신 xitolite 플러그인을 선택한다. 다만 옆쪽에 버전 표시가 제대로 되지 않는다면 git 패키지의 설치를 점검해 보아야 한다.&lt;br /&gt;
[[image:redmine_gito_08.png|640px|setting &amp;gt; repository]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==테마설치==&lt;br /&gt;
&lt;br /&gt;
테마를 설치하려면 unzip 이 설치되어 있어야 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
yum install unzip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===minimalplat2 redmine theme===&lt;br /&gt;
&lt;br /&gt;
* homepage : https://github.com/akabekobeko/redmine-theme-minimalflat2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/redmine/redmine_base/public/themes&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/akabekobeko/redmine-theme-minimalflat2/releases/download/v1.4.0/minimalflat2-1.4.0.zip&lt;br /&gt;
&lt;br /&gt;
unzip minimalflat2-1.4.0.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flatly light redmine theme===&lt;br /&gt;
&lt;br /&gt;
* homepage : https://github.com/Nitrino/flatly_light_redmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/redmine/redmine_base/public/themes&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/Nitrino/flatly_light_redmine/archive/master.zip&lt;br /&gt;
&lt;br /&gt;
unzip master.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==마무리 작업==&lt;br /&gt;
&lt;br /&gt;
perminssion 때문에 주의해야할 곳이 있습니다 두어곳정도 되는데, 모두 한번에 변경하는 걸로 하겠습니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
chmod -R 777 /home/redmine/tmp&lt;br /&gt;
chmod -R 777 /var/lib/nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==주의사항==&lt;br /&gt;
&lt;br /&gt;
# 이유를 정확하게 모르겠는데, thin 또는 rack 의 sock 파일을 /tmp 에 위치시키면 그 무엇도 동작되지 않는다.&lt;br /&gt;
# 이 문서를 작성하는 시점에서 centos 7 의 libgit2 는 0.26 이기 때문에 rugged 는 0.26 을 사용하도록 한다.&lt;br /&gt;
#* 만약 rugged 가 0.26 이 설치되지 않았다면 다음의 명령을 참고한다.&lt;br /&gt;
#* &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
gem uninstall rugged&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==참고문서==&lt;br /&gt;
&lt;br /&gt;
* https://www.redmine.org/projects/redmine/wiki/Install_Redmine_34_on_RHEL74&lt;br /&gt;
* https://www.rosehosting.com/blog/how-to-install-redmine-on-centos-7/&lt;br /&gt;
* http://www.redmine.org/projects/redmine/wiki/EmailConfiguration&lt;br /&gt;
* https://github.com/feedforce/ruby-rpm/releases&lt;br /&gt;
* How To Maintain Redmine Git Hosting : http://redmine-git-hosting.io/how-to/maintain/&lt;br /&gt;
* Unsupported URL protocol : http://redmine-git-hosting.io/troubleshooting/&lt;br /&gt;
* redmine git hosting / get started : http://trans.onionmixer.net/mediawiki/index.php?title=Redmine_git_hosting_get_started&lt;br /&gt;
* How To Maintain : http://redmine-git-hosting.io/how-to/maintain/&lt;br /&gt;
* https://serverfault.com/questions/629499/nginx-permission-denied-error&lt;br /&gt;
* https://groups.google.com/forum/#!topic/thin-ruby/X7MTUOZoPuU&lt;br /&gt;
* https://www.amitnepal.com/install-redmine-with-ruby-and-thin-on-centos/&lt;br /&gt;
* https://github.com/macournoyer/thin/pull/184&lt;br /&gt;
* https://www.lesstif.com/pages/viewpage.action?pageId=6979732&lt;br /&gt;
* CentOS 7 방화벽 관련 기초문서&lt;br /&gt;
** https://www.lesstif.com/pages/viewpage.action?pageId=22053128&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>