<?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=Gentoo_redmine_nginix_git</id>
	<title>Gentoo redmine nginix 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=Gentoo_redmine_nginix_git"/>
	<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Gentoo_redmine_nginix_git&amp;action=history"/>
	<updated>2026-04-04T09:27:07Z</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=Gentoo_redmine_nginix_git&amp;diff=307&amp;oldid=prev</id>
		<title>Onionmixer: /* thin에 redmine구동 설정 */</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Gentoo_redmine_nginix_git&amp;diff=307&amp;oldid=prev"/>
		<updated>2013-05-07T02:39:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;thin에 redmine구동 설정&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;Gentoo Linux에서 nginix, redmint, git 같이 사용하기-작성자_지구상의누군가&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==적용범위 및 목적==&lt;br /&gt;
&lt;br /&gt;
본 문서는 일반적으로 프로젝트의 진행 및 관리를 위해 Gentoo linux에서 DVCS프로그램인 git를 설치 하고 nginx웹서버 및 redmine을 설치하여 gitolite를 이용해 연동하는 법을 간단하게 기술하고 이를 이용해서 프로젝트를 진행하는 법을 간략하게 설명함을 목적으로 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==용어정의==&lt;br /&gt;
&lt;br /&gt;
* git :: Distributed version control system(DVCS) Program&lt;br /&gt;
* redmine :: flexible project management system&lt;br /&gt;
* nginx :: web server daemon&lt;br /&gt;
* Gentoo linux :: linux distribution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==기준내용==&lt;br /&gt;
&lt;br /&gt;
===시스템을 구성하기 위한 준비===&lt;br /&gt;
&lt;br /&gt;
# Gentoo Linux를 대상으로 하는 문서인 만큼 Gentoo Linux가 설치된 서버시스템&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===git===&lt;br /&gt;
&lt;br /&gt;
git란 개발되고 있는 source에 대한 버전 관리 시스템(VCS) 중 한 종류로서 서버상의 저장소에 저장하며 관리할 수 있는 CVCS(Centralized VCS)의 기능에서 서버가 문제가 생기거나 네트워크가 연결되지 않았을 때 사용 할 수 없다는 단점을 보완한 DVCS(Distributed VCS)프로그램이다.&lt;br /&gt;
&lt;br /&gt;
git는 하나의 snapshot단위로 버전 관리를 하게 되며 하나의 snapshot이 만들어 지기까지 Working Directory, Staging Area, Git Directory 의 3가지 단계를 거치게 된다.&lt;br /&gt;
&lt;br /&gt;
* Git Directory :: Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. Git Directory가 Git의 핵심이다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git Directory가 만들어진다.&lt;br /&gt;
* Working Directory :: 프로젝트의 특정 버전을 Checkout 한 것이다. Git Directory는 지금 작업하는 디스크에 있고 그 Directory에 압축된 데이터베이스에서 파일을 가져와서 Working Directory를 만든다.&lt;br /&gt;
* Staging Area :: Git Directory에 있다. 단순한 파일이고 곧 Commit 할 파일에 대한 정보를 저장한다. 종종 인덱스라고 불리기도 하지만, Staging Area라는 명칭이 표준이 되어가고 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
snapshot을 만들어 Commit 하기 위해서는 아래의 순서를 따른다.&lt;br /&gt;
# Working Directory에서 파일을 수정한다.&lt;br /&gt;
# Staging Area에 파일을 Stage 해서 Commit 할 Snapshot을 만든다.&lt;br /&gt;
# Staging Area에 있는 파일들을 Commit 해서 Git Directory에 영구적인 Snapshot으로 저장한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====git설치====&lt;br /&gt;
&lt;br /&gt;
Gentoo linux에서는 emerge git로 설치할 수 있다. 설치 시 git인증을 서포트 하는 gitolite를 같이 설치 하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# USE=&amp;quot;-webdav -perl&amp;quot; emerge -q git gitolite-gentoo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
그냥 설치하면 perl 관련된것들이 꽤나 많이 깔리게되므로 주의한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Redmine===&lt;br /&gt;
&lt;br /&gt;
웹기반의 프로젝트 관리와 버그 추적 기능을 제공하는 도구이다. 프로젝트 관리에 도움이 되도록 달력과 Gantt chart를 제공하고 일정관리 기능을 제공한다. Redmine은 통합된 프로젝트관리 기능과 이슈추적, 여러가지 형상 관리 기능을 제공한다.&lt;br /&gt;
&lt;br /&gt;
Redmine의 디자인은 비슷한 기능을 가지는 오픈소스 프로그램인 Trac에 영향을 많이 받았으며 Ruby on Rails에 기반하여 작성되었고 멀티 플랫폼을 지원하며 여러가지 종류의 데이터베이스를 지원한다. 이중에서 우리는 SQLite를 사용 할 것이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Redmine설치====&lt;br /&gt;
&lt;br /&gt;
Redmine을 사용하기 위해서 필요한 일부 package들이 Gentoo linux 에선 기본적으로 mask 되어 있어 바로 설치가 되지 않기 때문에 필요한 package들의 mask를 풀어주는 설정이 필요 하다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
아래에서 thin이라는 패키지는 nginx와 redmine을 연동시켜 사용할수 있는 ruby용 범용 컨테이너 이다. ruby용 web application을 사용하려면 java의 tomcat처럼 중간에 broker를 필요로 하게되는데 thin은 그런 역할을 해준다.&lt;br /&gt;
&lt;br /&gt;
http daemon으로 apache를 사용한다면 mod passenger를 사용하는 방법&amp;lt;ref name=&amp;quot;주석1&amp;quot;&amp;gt;http://nkdk.tistory.com/entry/ubuntu-1104-or-1110-apache-%EC%97%90%EC%84%9C-%EB%A3%A8%EB%B9%84-%EB%8F%8C%EB%A6%AC%EA%B8%B0 페이지를 참고&amp;lt;/ref&amp;gt;도 있지만 여기서 언급할 사항은 아니기때문에 이상의 설명은 하지 않는다 않는다.&lt;br /&gt;
&lt;br /&gt;
thin은 기본적으로 ruby를 위한 proxy라고 생각해도 좋으며 그 자체로 http daemon없이 스스로 동작이 가능하다. 다만 여러가지 기술 및 효율의 문제로인해 독립적으로 사용하는것은 피하는것이 좋다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# vi /etc/portage/package.keywords&lt;br /&gt;
www-apps/redmine ~amd64&lt;br /&gt;
dev-ruby/ruby-net-ldap ~amd64&lt;br /&gt;
www-servers/thin ~amd64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
또한 설치에 필요한 USE flag도 미리 정의 해 놓자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# vi /etc/portage/package.use&lt;br /&gt;
www-apps/redmine imagemagick ldap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
그리고 rails-2.3에서는 rack-1.2 이상은 사용 할 수 없으니 mask 설정을 추가 한다. 또한 redmine-2.x 이하 버전으로 설치 할 것이므로 같이 추가 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# vi /etc/portage/package.mask&lt;br /&gt;
&amp;gt;=dev-ruby/rack-1.2&lt;br /&gt;
&amp;gt;=www-apps/redmine-2.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
문서 작성시점에서 ruby-1.9를 사용하는 rails-3.x에 대해 Gentoo linux에서는 mask가 되어 있으므로 ruby-1.8 버전만을 사용 하도록 make.conf 를 수정 추가 해 준다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# vi /etc/portage/make.conf&lt;br /&gt;
RUBY_TARGETS=&amp;quot;ruby18&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이제 필요한 package를 설치해보자. 프로젝트에서 사용할 DB는 SQLite이며 웹서버는 nginx이므로 같이 설치한다. thin은 nginx와 redmine의 다리역할을 해줄 컨테이너 이며 bundler는 ruby용 package간 의존성 관리 툴이다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# emerge -q redmine thin bundler nginx dev-ruby/sqlite3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
설치가 완료 되면 redmine의 DB 접속 설정파일을 작성한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# vi /var/lib/redmine/config/database.yml&lt;br /&gt;
production:&lt;br /&gt;
  adapter: sqlite3&lt;br /&gt;
  database: db/redmine.db&lt;br /&gt;
&lt;br /&gt;
development:&lt;br /&gt;
  adapter: sqlite3&lt;br /&gt;
  database: db/redmine_dev.dbutf8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다음은 redmine의 기본 환경설정 작업을 실행한다. 이번에 사용된 버전은 1.4.5 이며 버전은 변경 될 수 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# emerge --config &amp;quot;=www-apps/redmine-1.4.5&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmint에 gitolite 연동 플러그인 설치===&lt;br /&gt;
&lt;br /&gt;
다음은 redmine에서 gitolite와 연동하기 위한 플러그인을 설치 한다.&lt;br /&gt;
&lt;br /&gt;
현재 설치된 remine은 1.4.5 이므로 해당되는 버전을 받아와 설치를 진행 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# cd /var/lib/redmine/vendor/plugins&lt;br /&gt;
# git clone -n git://github.com/ivyl/redmine-gitolite.git redmine_gitolite&lt;br /&gt;
Cloning into &amp;#039;redmine_gitolite&amp;#039;...&lt;br /&gt;
remote: Counting objects: 1109, done.&lt;br /&gt;
remote: Compressing objects: 100% (468/468), done.&lt;br /&gt;
remote: Total 1109 (delta 612), reused 1090 (delta 603)&lt;br /&gt;
Receiving objects: 100% (1109/1109), 122.46 KiB | 6 KiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (612/612), done.&lt;br /&gt;
&lt;br /&gt;
# cd redmine_gitolite&lt;br /&gt;
# git checkout -b redmine14 6491be010f7893b292468808a85b5fb190c767db&lt;br /&gt;
# echo &amp;quot;source &amp;#039;http://rubygems.org&amp;#039;&amp;quot; &amp;gt;&amp;gt; Gemfile&lt;br /&gt;
# bundle install&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;
# emerge --config &amp;quot;=www-apps/redmine-1.4.5&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
redmine에서 gitolite를 사용 하기 위해 redmine계정의 쉘을 /sbin/nologin 에서 /bin/bash 로 변경한다. 그리고 redmine계정 홈 디렉토리의 소유자를 변경한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# sed -i &amp;#039;s/\/redmine\:\/sbin\/nologin$/\/redmine\:\/bin\/bash/g&amp;#039; /etc/passwd&lt;br /&gt;
# chown -Rf redmine:redmine /var/lib/redmine&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이후 작업은 redmine 계정에서 계속 진행해야 함으로 계정을 변경 한다. 그리고 redmine계정에서 ssh 접속 키를 만든다. 몇 가지 질문을 물어 보지만 모두 엔터를 입력하여 기본값으로 설정한다.&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;
$ ssh-keygen -t rsa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
gitolite에 redmine계정 연동 설정을 진행 한다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ cp .ssh/id_rsa.pub .ssh/redmine.pub&lt;br /&gt;
$ git config --global user.name redmine&lt;br /&gt;
$ git config --global user.email redmine@localhost&lt;br /&gt;
$ gl-setup .ssh/redmine.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
위의 마지막 명령을 실행하고 엔터로 진행하면 편집기가 열리면서 환경설정이 나타나는데 저장하지 말고 종료를 한다. (vi일때 esc키-&amp;gt;:q!엔터)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다음은 ssh의 know_host를 저장 하기 위해 ssh접속을 시도 한다. 질문에 모두 yes로 답한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ ssh redmine@localhost&lt;br /&gt;
$ ssh redmine@127.0.0.1&lt;br /&gt;
$ ssh redmine@&amp;lt;&amp;lt;SERVER_HOSTNAME&amp;gt;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
설정이 정상인지 확인 하기 위해 테스트용으로 daemon을 실행 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ ruby script/server thin -e production&lt;br /&gt;
=&amp;gt; Booting Thin&lt;br /&gt;
=&amp;gt; Rails 2.3.15 application starting on http://0.0.0.0:3000&lt;br /&gt;
………&lt;br /&gt;
=&amp;gt; Call with -d to detach&lt;br /&gt;
=&amp;gt; Ctrl-C to shutdown server&lt;br /&gt;
&amp;gt;&amp;gt; Thin web server (v1.3.1 codename Triple Espresso)&lt;br /&gt;
&amp;gt;&amp;gt; Maximum connections set to 1024&lt;br /&gt;
&amp;gt;&amp;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;
웹브라우저로 http://&amp;lt;&amp;lt;SERVER_HOSTNAME 또는 IP&amp;gt;&amp;gt;:3000 에 접속하였을 때 다음과 같은 화면이 보인다면 정상이다.&lt;br /&gt;
&lt;br /&gt;
[[image:redmine_image1.png|none|800px|thumb|redmine을 설치한후의 초기화면]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===redmine과 gitolite연동 설정===&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;&amp;lt;SERVER_HOSTNAME 또는 IP&amp;gt;&amp;gt;:3000/settings/plugin/redmine_gitolite 로 접속한다.&lt;br /&gt;
&lt;br /&gt;
로그인 계정을 물어 보는데 기본 값은 admin // admin 이다.(설정을 진행하며 반드시 바꾸기 바란다)&lt;br /&gt;
&lt;br /&gt;
로그인을 하게 되면 아래와 같은 화면에 뜨는데 정해진 값으로 정보를 입력하고 적용(Apply)한다.&lt;br /&gt;
&lt;br /&gt;
[[image:redmine_image2.png|none|800px|thumb|redmine에서 gitorite를 설정하는 화면]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Gitolite URL : redmine@localhost:gitolite-admin.git&lt;br /&gt;
Base path : /var/lib/redmine/repositories/&lt;br /&gt;
Developer base URL : redmine@&amp;lt;&amp;lt;SERVER_HOSTNAME 또는 IP&amp;gt;&amp;gt;:%{name}.git&lt;br /&gt;
Read-Only base URL : redmine@&amp;lt;&amp;lt;SERVER_HOSTNAME 또는 IP&amp;gt;&amp;gt;:%{name}.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
설정이 완료되었으면 로그아웃(Sign out)을 하고 서버에서는 CTRL+C 로 테스트 daemon을 종료한 후 logout 명령어로 root 계정으로 돌아 간다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
^C&amp;gt;&amp;gt; Stopping ...&lt;br /&gt;
Exiting&lt;br /&gt;
$ logout&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===thin에 redmine구동 설정===&lt;br /&gt;
&lt;br /&gt;
thin을 daemon 형태로 구동 하기 위한 설정을 진행 한다.&lt;br /&gt;
&lt;br /&gt;
먼저 /etc/thin/redmine.yml 파일을 만든다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# vi /etc/thin/redmine.yml&lt;br /&gt;
---&lt;br /&gt;
chdir: /var/lib/redmine&lt;br /&gt;
log: /var/log/thin/redmine.log&lt;br /&gt;
pid: /var/run/thin/redmine.pid&lt;br /&gt;
socket: /var/run/thin/redmine.sock&lt;br /&gt;
environment: production&lt;br /&gt;
daemonize: true&lt;br /&gt;
user: redmine&lt;br /&gt;
group: redmine&lt;br /&gt;
servers: 4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다음은 /etc/init.d/thin 스크립트를 patch하는 파일을 만든다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
# vi /tmp/thin_patch&lt;br /&gt;
--- /etc/init.d/thin&lt;br /&gt;
+++ /etc/init.d/thin&lt;br /&gt;
@@ -40,8 +40,10 @@&lt;br /&gt;
         checkconfig || return 1&lt;br /&gt;
&lt;br /&gt;
         if [ ${SERVER} = thin ]; then&lt;br /&gt;
+                mkdir -p /var/run/thin&lt;br /&gt;
+                chown redmine:redmine /var/run/thin&lt;br /&gt;
                 ebegin &amp;quot;$2 all thin servers in ${CONFIG}&amp;quot;&lt;br /&gt;
-                ${RUBY} /usr/bin/thin $1 $(buildargs) --all ${CONFIG}&lt;br /&gt;
+                sudo -i -u redmine ${RUBY} /usr/bin/thin $1 $(buildargs) --all ${CONFIG}&lt;br /&gt;
                 eend $?&lt;br /&gt;
         else&lt;br /&gt;
                 ebegin &amp;quot;$2 thin server ${SERVER}&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
patch를 적용하고 thin이 사용할 log폴더를 만든다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# patch -p0 &amp;lt; /tmp/thin_patch&lt;br /&gt;
patching file /etc/init.d/thin&lt;br /&gt;
# rm -f /tmp/thin_patch&lt;br /&gt;
# mkdir -p /var/log/thin&lt;br /&gt;
# chown -Rf redmine:redmine /var/log/thin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
thin이 daemon 형태로 실행 되는지 확인 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# /etc/init.d/thin start&lt;br /&gt;
 * Starting all thin servers in /etc/thin/ ...&lt;br /&gt;
[start] /etc/thin//redmine.yml ...&lt;br /&gt;
Starting server on /var/run/thin/redmine.0.sock ... &lt;br /&gt;
Starting server on /var/run/thin/redmine.1.sock ... &lt;br /&gt;
Starting server on /var/run/thin/redmine.2.sock ... &lt;br /&gt;
Starting server on /var/run/thin/redmine.3.sock ...   [ ok ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 실행시 다음같은 메세지가 나오면서 실행이 안되는 경우가 있다. 그럴때는 &amp;#039;&amp;#039;&amp;#039;/etc/passwd&amp;#039;&amp;#039;&amp;#039; 파일에서 redmine 의 shell 이 nologin 이 아니라 bash로 지정되어있는지를 한번 더 확인한다.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
This account is currently not available.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===nginx에 thin구동 설정===&lt;br /&gt;
&lt;br /&gt;
nginx에서는 Ruby on Rails를 처리 하지 못하기 때문에 thin이 redmine을 서비스 하고 nginx는 그것을 중계 하도록 설정 해야 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
먼저 /etc/nginx/proxy.include 파일을 작성 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# vi /etc/nginx/proxy.include&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;
    client_max_body_size       10m;&lt;br /&gt;
    client_body_buffer_size    128k;&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;
다음은 /etc/nginx/nginx.conf 의 http section의 server section앞에 아래 항목을 추가 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
	upstream redmine_cluster {&lt;br /&gt;
	 server unix:/var/run/thin/redmine.0.sock;&lt;br /&gt;
        server unix:/var/run/thin/redmine.1.sock;&lt;br /&gt;
        server unix:/var/run/thin/redmine.2.sock;&lt;br /&gt;
        server unix:/var/run/thin/redmine.3.sock;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
마지막으로 /etc/nginx/nginx.conf 의 server section을 추가 한다. 예제에서는 3000번 port를 사용 하고 있으나 이것 외 다른 port를 설정해도 상관없다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
	listen 3000;&lt;br /&gt;
	server_name redmine;&lt;br /&gt;
&lt;br /&gt;
	root /var/lib/redmine/public;&lt;br /&gt;
&lt;br /&gt;
	include /etc/nginx/proxy.include;&lt;br /&gt;
	proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
	location / {&lt;br /&gt;
	try_files $uri/index.html $uri.html $uri @cluster;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	location @cluster {&lt;br /&gt;
	proxy_pass http://redmine_cluster;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nginx daemon을 시작 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# /etc/init.d/nginx start&lt;br /&gt;
 * Checking nginx&amp;#039; configuration ...           [ ok ]&lt;br /&gt;
 * Starting nginx ...                                    [ ok ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nginx.conf에 설정 하였던 port로 웹브라우저를 통하여 접속을 하였을 때 redmine의 정상적인  화면이 나타난다면 모두 완료이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==참고사항==&lt;br /&gt;
&lt;br /&gt;
# redmine에서는 식별자를 소문자밖에 사용하지 못한다. 대문자를 사용하고 싶다면 DB를 직접 편집할것 :: Projects.identifier 필드 참고&lt;br /&gt;
# redmine의 식별자대로 디렉토리를 생성해버린다. 고로 redmine에서 프로젝트의 식별자를 잘 정하는것은 대단히 중요. 참고로 redmine의 식별자규칙덕에 생성되는 repository이름은 모두 소문자&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ssh port를 표준 22 번이 아니라 다른 port를 사용하는 경우===&lt;br /&gt;
&lt;br /&gt;
Grit::NoSuchPathError 이런 에러가 production.log (환경에 따라 파일이름은 다를 수 있다) 뜨는경우 ssh port관련 에러를 확인할 수 있는 경우가 있다.&lt;br /&gt;
&lt;br /&gt;
이 경우 foreground 로(위의 내용중 ruby로 thin을 직접실행하는방법) 직접 log를 보면 ssh port를 22번으로 접속이 안된다는등의 내용이 나온다&lt;br /&gt;
&lt;br /&gt;
redmine 계정의 .ssh/config 파일을 [https://groups.google.com/forum/?fromgroups=#!topic/gitolite/SjYTX05zD7c 여기]를 참고로해서 작업해준다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Host localhost&lt;br /&gt;
        User redmine&lt;br /&gt;
        Port 너님의포트번호&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
redmine system에 public key 등록후 redmine이 깔려있는 서버에서 다음과같은 내용으로 gitorite 와 Key를 이용해서 ssh key 등록 테스트를 진행한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
ssh -i ./private키이름 -l redmine localhost -p포트번호&lt;br /&gt;
hello 너님, this is gitolite gitolite-gentoo-2.3.1-gentoo running on git 1.7.12.4&lt;br /&gt;
the gitolite config gives you the following access:&lt;br /&gt;
    @R_ @W_	testing&lt;br /&gt;
Connection to localhost closed.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 내용이 나온다면 기본적으로 redmine 에 public key 등록은 성공이라고 봐도 된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==관련문서==&lt;br /&gt;
&lt;br /&gt;
* http://git-scm.com/book/ko :: Pro Git - git 가이드북&lt;br /&gt;
* http://bluewiz.tistory.com/446 :: 이것외의 다른 플러그인.. 이것도 괜찮은거같다&lt;br /&gt;
* http://whatwant.tistory.com/450 :: Redmine-Git repository연결하기&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==별첨==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>