serviceapp:redmine
目次
Redmine
Ruby on Rails(RoR)上で動作するProject Management System(PMS)のRedmineに関するメモ
Installed Version History
| 2010/01/10 | redmine 0.8.7 | Initial install |
0.9.0がどうやらReleaseされているように見えるが、少なくともNetBSD/ruby18/lighttpdではうまく動かなかったので。
参照URL
- Redmine 本家サイト
環境
- NetBSD
- Ruby18
- RubyGems
- Rails
- mysql
- fastcgi
- lighttpd+lua
Install
環境構築
- NetBSD上に以下のpackageをpkgsrcから導入
- graphics/ImageMagick
- databases/mysql-server
- lang/Ruby18
- misc/rubygems
- www/ruby-fcgi (勝手にfcgiもinstallしてくれる)
- 何故か、
gem install fcgiではうまく以下なかった。なぜ?
- RMagick
- 今回はpkgsrcからではなくgemからinstallする。(pkgsrcではうまくinstallできなかったので。原因は調査中)
gem install rmagickでOK
- tlsmail
gem install tlsmailでOK
- rails
gem install railsでOK
- Lighttpd+lua
- Lighttpd参照
MySQLの設定
- MySQLを参照
- redmine用のDB(ここではredmine)とアクセス用のUser/Password(ここではrmuser/rmpass)を決めてDBを作成する
Redmineの設定
- ここの「RubyForge: Redmine: ファイルリスト」から最新版のtarballを持ってくる
- Webで公開するDirで展開する。(ここでは、/WebApp/redmineとする)
- config/database.ymlを作成
cd configcp database.yml.example database.ymlvi database.yml- 変更点は以下の通り
# すべてをComment outして、以下を追加 production: adapter: mysql database: rmdb host: localhost username: rmadmin password: himitsu encoding: utf8
socket: some/where/socketfileを設定してもいいかもしれない
- セッションストア秘密鍵を生成
- 0.9.0からは必要みたいなので、生成する。
# cd /WebApp/redmine # rake config/initializers/session_store.rb
- Redmine用DBを初期化
# cd /WebApp/redmine # rake db:migrate RAILS_ENV="production" # rake redmine:load_default_data RAILS_ENV="production"
- Permissionの設定
# cd /WebApp/redmine # chown -R www:www .
WEBrickでのテスト
- WEBrickで動作確認
ruby script/server webrick -e production -p 80
- Browserからサーバーの80番ポートに接続すればredmineが動いていることが確認出来るはず。
- なお、defaultのUser/passwordは admin/admin なので、さっさと変更しよう。
Lighttpd+fcgi対応
とりあえず、基本的な設定は省略
vendor/rails/railties/configs/lighttpd.confを参考に、lighttpd.confを作成- public/dispatch.fcgi.exampleをpublic/dispatch.fcgiにコピー
- これを忘れると当然dispatchされないのでうまく動かない。
- 注意点
- 個人環境においては、mod_expireを生かす必要があった。
- まず変更点を。
- lighttpd.conf
- server.modulesにmod_expireを追加
- cgi.assignの“.cgi”を
“.cgi” ⇒ “/usr/pkg/bin/ruby18”に変更 (これはおそらくいらないと思う)
- lighttpd-vhost.conf (個人的に追加しているファイルなので、普通はlighttpd.confに追加すれば良い
# redmine.example.org $HTTP["host"] =~ "redmine.example.org" { server.document-root = "/WebApp/redmine/public" server.error-handler-404 = "/dispatch.fcgi" accesslog.filename = "/var/log/www/redmine" url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" ) compress.filetype = ( "text/plain", "text/html", "text/css", "text/javascript" ) compress.cache-dir = "/home/www/rusty/redmine/tmp/cache" expire.url = ( "/favicon.ico" => "access 3 days", "/images/" => "access 3 days", "/stylesheets/" => "access 3 days", "/javascripts/" => "access 3 days" ) fastcgi.server = ( ".fcgi" => ( "localhost" => ( "min-procs" => 1, "max-procs" => 1, "socket" => "/WebApp/redmine/tmp/sockets/fcgi.socket", "bin-path" => "/WebApp/redmine/public/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production" ) ) ) ) $HTTP["useragent"] =~ "^(.*MSIE.*)|(.*AppleWebKit.*)$" { server.max-keep-alive-requests = 0 } }
Mail関係の設定
普通にMailを送るだけなら、以下の設定でOK
- config/email.yml
production: delivery_method: :smtp smtp_settings: address: smtp.example.com port: 25 domain: example.com authentication: :login user_name: rmuser password: rmpass- 当然、Mail Server(この例ではsmtp.example.com)にアカウントを掘っておかないと使えない。
- 認証メソッドは、色々確認すること
SSLを使ってsubmissionで送る場合は、以下の設定を。
- gemでtlsmailを追加
gem install tlsmail
- 他のシステムは不明だが、NetBSD/ruby18(pkgsrc)/Lighttpdを利用している場合、dispatch.fcgiを修正する
domU2-04# diff -c ./dispatch.fcgi.example ./dispatch.fcgi *** ./dispatch.fcgi.example Sun Jan 10 23:57:34 2010 --- ./dispatch.fcgi Mon Jan 11 01:49:55 2010 *************** *** 20,24 **** --- 20,26 ---- # require File.dirname(__FILE__) + "/../config/environment" require 'fcgi_handler' + require 'tlsmail' + Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE) RailsFCGIHandler.process!
- config/email.yml
production: delivery_method: :smtp smtp_settings: address: smtp.example.com port: 587 domain: example.com authentication: :login user_name: rmuser@example.com password: rmpass- 当然、Mail Server(この例ではsmtp.example.com)にアカウントを掘っておかないと使えない。
- 必要な設定はMail Server側で行われていることを家庭している
backup
Redmineのデータバックアップは、Databaseだけでなくファイルでも行う必要がある。
バックアップscriptは以下の通り
#! /bin/sh
#
# Generate Redmine backup.
#
# USAGE: set crontab to run.
umask 077
host=`hostname`
date=`date`
echo "To: ${MAILTO:-root}"
echo "Subject: $host redmine backup output status for $date"
echo ""
# Set variables
BASE=/some/where/bkup
new=1
for i in 6 5 4 3 2 1; do
new=`expr $i + 1`
if [ -f $BASE/db.$i.gz ]; then
mv $BASE/db.$i.gz $BASE/db.$new.gz
fi
if [ -f $BASE/rmfiles.$i.gz ]; then
mv $BASE/rmfiles.$i.gz $BASE/rmfiles.$new.gz
fi
done
/usr/pkg/bin/mysqldump --all-databases -u MYSQL_ROOT --password='MYSQL_ROOT_PASSWORD' | gzip > $BASE/db.1.gz
(cd /home/www/rusty/redmine; /bin/tar czf $BASE/rmfiles.1.gz files)
echo "Backup of MySQL Database amd Redmine files are done."
ls -l $BASE
serviceapp/redmine.txt · 最終更新: by 127.0.0.1
