Action disabled: source
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 config
cp database.yml.example database.yml
vi 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 · 最終更新: 2016/03/07 20:06 by 127.0.0.1