redmineを入れようとしたのだが、日常的に使ってるWebサーバがnginxになってるもので、
せっかくなのでPassengerではなくunicornを使って組み上げてみた。
なおnginxはすでに入っている。
redmineのセットアップ
ユーザ側ではrvmを使ってたりするので、system rubyと混乱の生まれないようrootで作業。
1
| # apt-get install ruby1.8 rubygems
|
gemはdebianのものでは新しすぎるので1.7以前に戻す必要があるが、gem update –system 1.6.2とかするとDebianは怒るので、REALLY_GEM_UPDATE_SYSTEMフラグをつける。
1
| # REALLY_GEM_UPDATE_SYSTEM=true gem update --system 1.6.2
|
そして各種パッケージを入れる
1
2
3
4
5
| # gem install rack -v=1.1.1 --no-rdoc --no-ri
# gem install rake -v=0.8.7 --no-rdoc --no-ri
# gem install i18n -v=0.4.2 --no-rdoc --no-ri
# gem install mysql --no-rdoc --no-ri
# gem install rails -v=2.3.11 --no-rdoc --no-ri
|
ちなみにunicornやrailsから先に入れたりするとrakeやrackのバージョンが高いものが入ったりして動かなくなるので、その場合は対象をuninstallしてから入れ直して使う。
これで必要パッケージが完了。
mysqlで以下のようにDB、ユーザを作る。
1
2
3
| > create database redmine;
> create user 'redmine'@'localhost' identified by 'password';
> grant all privileges on redmine.* to 'redmine'@'localhost;
|
これでOK。次にredmineをcheckout
1
2
3
4
| # cd /usr/share/nginx
# svn checkout http://redmine.rubyforge.org/svn/branches/1.2-stable redmine
# cd redmine/config
# cp database.yml.exapmle database.yml
|
として、DBの設定をする。
そして、セッション鍵生成とDB作成
1
2
| # rake generate_session_store
# rake db:migrate RAILS_ENV=production
|
以上で、redmineに必要な作業完了。
unicornのセットアップ
何はなくともinstall
1
| # gem install unicorn --no-rdoc --no-ri
|
redmineのconfig/の中にunicorn.rbを作成
設定は http://www.cocoalife.net/2010/10/post_77.html のエントリを参考に。
完了したら、unicornをデーモンモードで起動
1
| # unicorn_rails -c config/unicorn.rb -E production -D
|
nginxの設定
1
| # vi /etc/nginx/site-available/redmine
|
以下のように作成。上述のサイトも参考にしつつ。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| upstream unicorn {
server unix:/tmp/unicorn.sock;
}
server {
listen 80;
server_name example.com;
root /usr/share/nginx/redmine/public;
error_log /usr/share/nginx/redmine/log/error.log;
location / {
if (-f $request_filename) { break; }
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://unicorn;
}
}
|
有効にして、nginx再起動。
1
2
| # ln -s /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/redmine
# /etc/init.d/nginx restart
|
以上で完了。