Debian (etch) に Redmine 0.7.3 インストール (実運用編)
前回は Redmine を単体で動かしてみるだけだったが、今回は 運用に耐えられるように Apache + Passenger + PostgreSQL で Redmine を動かしてみる。
パッケージのインストール
できる限り 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 }