Redmine 0.8.5 on さくらサーバ構築まとめ

さくらのスタンダードプランへのインストール手順まとめ.
# 同件は色々とまとめられているが、一筋縄ではいかなかったので.

  • 前提
    • シェル、エディターの変更手順も含める.
    • ドメイン : hoge.sakura.ne.jp
    • ソース類は $HOME/local/src にまとめる.
    • コマンド類は, なるべく $HOME/local/bin にまとめる.
    • Railsgateway.cgiを使って高速化する.

シェルの入力補間

%cd
# set autolist を追加.
%vi .cshrc
....
set autolist

if ($?prompt) then
....
# Esc -> ZZ などでvi閉じる.

%source $HOME/.cshrc
%rehash
%./(Tabを押す)
MailBox/    db/    sblo_files/    www/

Vim

%mkdir -p $HOME/local/src
%cd $HOME/local/src
%wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
%wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
%wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz
%tar jxf vim-7.2.tar.bz2
%tar zxf vim-7.2-extra.tar.gz
%tar zxf vim-7.2-lang.tar.gz
%cd vim72
%mkdir patches
%cd patches
%curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.[001-259]'
%cd ..
%cat patches/7.2.* | patch -p0
%./configure --enable-multibyte --enable-xim --enable-fontset \
--with-features=big --prefix=$HOME/local
%make && make install

# vim のエイリアス設定, パスの追加.
%cd
%vi .cshrc
....
alias ll ls -lA
alias vi vim

# set path に $HOME/local/bin を追加. 必ず /usr/local/bin より前に書くこと.
#set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)
set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin $HOME/local/bin /usr/local/bin $HOME/bin)
....
# Esc -> ZZ などでvi閉じる.

# 保存→即反映する.
%source $HOME/.cshrc
%rehash

# via : vim の文字コード自動認識用設定
# http://www.kawaz.jp/pukiwiki/index.php?vim#cb691f26

via : さくらインターネットの共用サーバに vim をインストールする
http://www.hazama.nu/t2o2/archives/002696.shtml

Subversion

各種最新ソースを取得するにもSVNコマンドが入っていないためインストール.
subversion, apr, apr-util はそれぞれ最新版をチェックして適宜変更.

%cd $HOME/local/src
%wget http://subversion.tigris.org/downloads/subversion-1.6.5.tar.bz2
%wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-0.9.18.tar.bz2
%wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-0.9.17.tar.bz2
%tar jxf subversion-1.6.5.tar.bz2
%cd subversion-1.6.5
%tar jxf ../apr-0.9.18.tar.bz2
%mv apr-0.9.18 apr
%tar jxf ../apr-util-0.9.17.tar.bz2
%mv apr-util-0.9.17 apr-util
%./configure --prefix=$HOME/local/
%make && make install

# インストールチェック.
%svn --help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.6.5.
...

via :
さくらインターネットSubversion
http://saikyoline.jp/weblog/2005/10/15/001101.html
さくらインターネットSubversionの補足。
http://saikyoline.jp/weblog/2007/04/15/013257.html

Ruby

%cd $HOME/local/src
%wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
%tar zxf ruby-1.8.7-p174.tar.gz
%cd ruby-1.8.7-p174
%./configure --prefix=$HOME/local
%make && make install

# iconv のインストール. Redmineで使う(はず)
%cd $HOME/local/src/ruby-1.8.7-p174/ext/iconv
%ruby extconf.rb --prefix=$HOME/local --with-iconv-dir=/usr/local
%make && make install

RubyGems

%cd $HOME/local/src
%wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
%tar zxf rubygems-1.3.5.tgz
%cd rubygems-1.3.5
%setenv RB_USER_INSTALL true
%setenv GEM_HOME $HOME/local/gems/1.8
%ruby setup.rb --prefix=/ --destdir=$HOME/local/gems/1.8
# $HOME/local/gems/1.8/bin/gem18 に入る.

# setenv に RUBYLIB, GEM_HOME の値を追加.
%cd
%vi .cshrc
...
setenv  PKG_DBDIR       ~/db/pkg

setenv  RB_USER_INSTALL true
setenv  RUBYLIB         $HOME/local/lib/ruby/site_ruby/1.8:$HOME/local/gems/1.8/lib
setenv  GEM_HOME        $HOME/local/gems/1.8

# set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin)
set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin $GEM_HOME/bin $RUBYLIB/bin)
----
# Esc -> ZZ などでvi閉じる.

# 保存→即反映する.
%source $HOME/.cshrc 
%rehash
%gem18 --version
1.3.5

Ruby on Rails

%cd
# redmine 0.8.5 では, Rails 2.1.2 を指定.
%gem18 install rails -v=2.1.2
Successfully installed activesupport-2.1.2
Successfully installed activerecord-2.1.2
Successfully installed actionpack-2.1.2
Successfully installed actionmailer-2.1.2
Successfully installed activeresource-2.1.2
Successfully installed rails-2.1.2
6 gems installed
Installing ri documentation for activesupport-2.1.2...
Installing ri documentation for activerecord-2.1.2...
Installing ri documentation for actionpack-2.1.2...
Installing ri documentation for actionmailer-2.1.2...
Installing ri documentation for activeresource-2.1.2...
Installing ri documentation for rails-2.1.2...
Installing RDoc documentation for activesupport-2.1.2...
Installing RDoc documentation for activerecord-2.1.2...
Installing RDoc documentation for actionpack-2.1.2...
Installing RDoc documentation for actionmailer-2.1.2...
Installing RDoc documentation for activeresource-2.1.2...
Installing RDoc documentation for rails-2.1.2...

/*
# 先にバージョン指定なしでインストールした場合は下記.
gem18 install rails
Successfully installed rake-0.8.7
Successfully installed activesupport-2.3.4
Successfully installed activerecord-2.3.4
Successfully installed rack-1.0.0
Successfully installed actionpack-2.3.4
Successfully installed actionmailer-2.3.4
Successfully installed activeresource-2.3.4
Successfully installed rails-2.3.4
8 gems installed
Installing ri documentation for rake-0.8.7...
Installing ri documentation for activesupport-2.3.4...
Installing ri documentation for activerecord-2.3.4...
Installing ri documentation for rack-1.0.0...
Installing ri documentation for actionpack-2.3.4...
Installing ri documentation for actionmailer-2.3.4...
Installing ri documentation for activeresource-2.3.4...
Installing ri documentation for rails-2.3.4...
Installing RDoc documentation for rake-0.8.7...
Installing RDoc documentation for activesupport-2.3.4...
Installing RDoc documentation for activerecord-2.3.4...
Installing RDoc documentation for rack-1.0.0...
Installing RDoc documentation for actionpack-2.3.4...
Installing RDoc documentation for actionmailer-2.3.4...
Installing RDoc documentation for activeresource-2.3.4...
Installing RDoc documentation for rails-2.3.4...
*/

# インストールチェック.
%rehash
%rails -v
2.1.2

/*
# 2重で入れた場合は, Redmineに合わせておく.
%gem18 uninstall rails

Select gem to uninstall:
 1. rails-2.1.2
 2. rails-2.3.4
 3. All versions
> 2
Successfully uninstalled rails-2.3.4

%rails -v
Rails 2.1.2
*/

# どうでもいいけど、ここまでやった後で昨日(9/13)に0.8.5がリリースされたことを知る.
mkdir rails

sqlite3-ruby

# ソースから導入.
# gemはエラーになる.(libが足りない?)
/*
%gem18 install sqlite3-ruby
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
        ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb
checking for fdatasync() in -lrt... no
checking for sqlite3.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
*/

%cd $HOME/local/src
%wget http://rubyforge.org/frs/download.php/42056/sqlite3-ruby-1.2.4.tar.gz
%tar zxf sqlite3-ruby-1.2.4.tar.gz
%cd sqlite3-ruby-1.2.4
%ruby setup.rb config --prefix=$HOME/local
%ruby setup.rb setup
%ruby setup.rb install

Redmine

# ~/www 以外の場所に配置する.
%cd $HOME/rails
%mkdir redmine
%cd redmine

# via : http://rubyforge.org/scm/?group_id=1850
%svn checkout svn://rubyforge.org/var/svn/redmine/branches/0.8-stable .
%cd tmp

# tar.gz の vendor/rails を, svn から checkout したプロジェクトに配置する.
# 今回は同一バージョンのため、tar.gz 版を使っても良さそう.
%wget http://rubyforge.org/frs/download.php/63583/redmine-0.8.5.tar.gz
%tar zxf redmine-0.8.5.tar.gz
%mv redmine-0.8.5/vendor/rails ../vendor/
# sweep.
%rm -rf redmine-0.8.5*

%cd $HOME/rails/redmine/

# Apache実行ユーザから書き込むため.
%chmod -R o+w tmp log

# DBをsqlite3に変更.
%cd config
%cp database.yml.example database.yml
%vi database.yml
....
# production:
#   adapter: mysql
#   database: redmine
#   host: localhost
#   username: root
#   password:
#   encoding: utf8

production:
  adapter: sqlite3
  dbfile: db/redmine.db
  timeout: 5000

# これ以降もコメントしておく.(MySQLのセットアップをしていないと, デフォルト値ではエラー.)
....

# 下記の rake でつまづく場合は, 下記のパスをチェック.
# setenv  RUBYLIB         $HOME/local/lib/ruby/site_ruby/1.8:$HOME/local/gems/1.8/lib
# set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin $HOME/local/bin /usr/local/bin $HOME/bin $GEM_HOME/bin $RUBYLIB/bin)

# DBセットアップ
%rake db:migrate RAILS_ENV="production"
%rake redmine:load_default_data RAILS_ENV="production"

Select language: bg, ca, ...
> ja

# 環境設定. $HOME の部分は各自の値に置き換えて入力する.
%vi config/enviroment.rb
# Be sure to restart your web server when you modify this file.
# configuration for SAKURA
# ~/.cshrcに設定した環境変数「RUBYLIB」と「GEM_HOME」
$LOAD_PATH.push("/home/hoge/local/lib/ruby/site_ruby/1.8")
$LOAD_PATH.push("/home/hoge/local/gems/1.8/lib")
ENV['GEM_HOME']||='/home/hoge/local/gems/1.8'
ENV['PATH']+=':/home/hoge/local/bin'
....

%cd $HOME/rails/redmine

# CGI動作のためOptions部をコメント.
%vi public/.htaccess
....
#Options +FollowSymLinks +ExecCGI

# forge(工房)とかにするならRewriteBaseを使う.
RewriteBase /myforge
----

# dispatch.cgi のコピー.
%cp -p public/dispatch.cgi.example public/dispatch.cgi
%vi public/dispatch.cgi
# which ruby のパス.
#!/home/hoge/local/bin/ruby
....

# 実行権付与.
%chmod u+x public/dispatch.cgi

# 外部アクセス用にシンボリックリンクを張る.
# RewriteBase 使用時は、www/myforge などとする.
%ln -s $HOME/rails/redmine/public $HOME/www/redmine

# ブラウザから下記にアクセス.
# http://hoge.sakura.ne.jp/redmine/

fcgi

%cd $HOME/local/src
%wget http://fastcgi.com/dist/fcgi-2.4.0.tar.gz
%tar zxf fcgi-2.4.0.tar.gz
%cd fcgi-2.4.0
%./configure --prefix=$HOME/local
%make && make install

# fcgi -- --with-.. なので注意.
%gem18 install fcgi -- --with-fcgi-include=$HOME/local/include/ --with-fcgi-lib=$HOME/local/lib/
Building native extensions.  This could take a while...
Successfully installed fcgi-0.8.7
1 gem installed
Installing ri documentation for fcgi-0.8.7...
Installing RDoc documentation for fcgi-0.8.7...

%cd $HOME/rails/redmine/
# 作らないとログ書き込みできないエラーになる.
%mkdir log/drb_gateway
%chmod 777 log/drb_gateway

%cp -p vendor/rails/railties/dispatches/gateway.cgi public/.
%cp -p vendor/rails/railties/lib/commands/ncgi/listener script/.
%cp -p vendor/rails/railties/lib/commands/ncgi/tracker script/.
%chmod 755 public/gateway.cgi

# 以下diff形式。'-' を削除, '+' を追加
%vi public/gateway.cgi
-#!/usr/local/bin/ruby
+#!/usr/bin/env ruby

-    sleep 0.5
+    sleep 1

%vi public/.htaccess
-       RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+       RewriteRule ^(.*)$ gateway.cgi [QSA,L]

%vi script/listener
-#!/usr/local/bin/ruby
+#!/usr/bin/env ruby

 require 'stringio'
 require 'fileutils'
+require 'rubygems'
+gem 'fcgi'
+
 require 'fcgi_handler'

 def message(s)
....

     self.env_table = env_table
     self.stdinput = input || StringIO.new
     self.stdoutput = output || StringIO.new
+    $stdin = self.stdinput
+    $stdout = self.stdoutput
     super()
   end
....

%vi script/tracker
-#!/usr/local/bin/ruby
+#!/usr/bin/env ruby

# .htaccess で RewriteBase使用時.
%vi config/environments/production.rb
+
+# gateway.cgi configuration
+ActionController::AbstractRequest.relative_url_root = "/myforge"

via : さくらサーバーでRailsを高速に動作させる方法
http://d.hatena.ne.jp/cimadai/20080923/RubyonRails_on_sakura
via : さくらサーバへRedmineをインストールしたときのメモ
http://mcnc.jp/wiki/wikird/index.php?cmd=read&page=Linux%2F%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB%2Fweb%2FRedmine%2F%A4%B5%A4%AF%A4%E9%A5%B5%A1%BC%A5%D0%A4%D8%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

さすがに、もうちょっと短くしたい...