Debian (etch) に Redmine 0.7.3 インストール (実運用編)

前回は Redmine を単体で動かしてみるだけだったが、今回は 運用に耐えられるように Apache + Passenger + PostgreSQLRedmine を動かしてみる。

パッケージのインストール

できる限り Debian のパッケージで済ませたい。

 aptitude install apache2 postgresql-8.1
 aptitude install apache2-dev ruby1.8-dev build-essential 
 aptitude install rake gem libpgsql-ruby1.8

PostgreSQL の設定

データベースとアカウントを作成する

  su - postgres
  createuser -P redmine
  createdb -E utf8 -O redmine redmine
  exit

Redmine のインストール

  tar xzf redmine-0.7.3.tar.gz
  mv redmine-0.7.3 /var/lib/redmine
  cd /var/lib/redmine

config/settings.yml を編集。mail_from や host_name など、管理画面で変更できない部分を事前に設定しておく。設定は、データベース初期化後に settings テーブルに格納される。

mail_from:
  default: redmine@example.com

host_name:
  default: example.com

config/database.yml を作成。

 cp config/database.yml{.example,}
 vi config/database.yml

config/database.yml を編集。

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: パスワード

PostgreSQL のデフォルトの認証は、md5 でハッシュ化した値で行うので、以下のようして求める(未確認)。

 ruby -r 'digest/md5' -e "puts Digest::MD5.hexdigest('password')"

データベースの初期化を実行。

 rake db:migrate RAILS_ENV=production
 rake redmine:load_default_data RAILS_ENV=production


メール送信の設定。config/enviroment.rb ファイルにて、:authentication, :user_name, :password をコメントアウト

        # SMTP server configuration
        config.action_mailer.smtp_settings = {
                :address => "127.0.0.1",
                :port => 25,
                :domain => "example.com",
                #:authentication => :login,
                #:user_name => "redmine",
                #:password => "redmine",
        }

redmine の所有者を www-data に変更

  chown -R www-data:www-data /var/lib/redmine

Passenger のインストール

  gem install passenger
  cd /var/lib/gems/1.8/gems/passenger-2.0.3/bin
  ruby passenger-install-apache2-module

Apache の設定

/etc/apache2/mods-available/passenger.load を作成。

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-2.0.3
PassengerRuby /usr/bin/ruby1.8

設定を有効にする。

 a2enmod passenger

DorumentRoot を /var/lib/redmine/public を指定する。

apache の再起動。

 /etc/init.d/apache2 restart

CRON の設定

/etc/cron.d/redmine を作成。

30 2 * * * root find /var/lib/redmine/tmp/sessions -name "ruby_sess*" -mtime +3 -delete

logrotate の設定

/etc/logrotate.d/redmine を作成。

/var/lib/redmine/log/*log {
	missingok
	notifempty
	copytruncate
}