hetemlにRedmineを入れてみた
結論から言うと、本日(2010/11/17)時点ではRedmineの1.0系と0.9系は無理で、0.8系であればインストールできました。ただし、CGIでの呼び出しになるので非常に遅いです。体感的にはページ表示に5秒以上かかってるような・・・実用に耐えられないかも。
以下、その理由と0.8系でのインストール手順です。
Redmine 1.0系と0.9系がインストールできない理由
まずhetemlの環境では自由にポートを解放できないので、既に用意されている80番ポートのWebサーバ(Apache 2.0.x)を利用するしかないです。httpd.confをいじることもできないので、Railsのアプリケーションを実行させようとするとCGIでの呼び出しのみが可能です(Webrickでの動作は確認できたので、ポートの解放さえ出来れば・・・だったんですが)。
CGIでの呼び出しというのが実は問題で、Rails2.3系?ではCGIからの呼び出しが正しく動作しないらしいです。ソースは以下。
- Defect #4610: undefined method `env_table' for nil:NilClass (NoMethodError) with rev 3335 - Redmine
- Rails 2.3.2, Apache2 and CGI not working - Ruby Forum
というわけで、Rails 2.3.5で作られているRedmine 1.0系と0.9系は利用できなくて、Rails2.1.2で作られているRedmine 0.8系は利用できるということです。
Redmine 0.8系のインストール手順
RubyGemsインストール
以下を参考にさせて頂きました。
まずはRubyGemsを展開します。
cd ~/ mkdir -p temp/rubygems_src cd temp/rubygems_src wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz tar xvzf rubygems-1.3.7.tgz cd rubygems-1.3.7
続いてlib/rubygems.rbを修正します。
:bindir => RbConfig::CONFIG["bindir"],
を
:bindir => '/usr/bin',
にします。
あとはsetup.rbを実行します。
mkdir ~/.gem ruby setup.rb --prefix=~/.gem
cd ~/
vi .bash_profile
設定内容は以下で。
export GEM_HOME=~/.gem export PATH=$GEM_HOME/bin:$PATH export RUBYLIB=$GEM_HOME/lib
設定を反映してRubyGemsが設定できたことを確認します。
source .bash_profile gem -v
Rakeインストール
gem install rake
一応確認。
rake --version
Redmine 0.8.7インストール
以下を参考にしました。
まずはRedmineを展開します。
cd ~/ wget http://rubyforge.org/frs/download.php/73140/redmine-0.8.7.tar.gz tar xvzf redmine-0.8.7.tar.gz cd redmine-0.8.7
データベースの接続情報を修正します。
cp config/database.yml.example config/database.yml vi config/database.yml
修正内容は以下の通りです。
production: adapter: mysql database: データベース名 host: mysql[ユーザ固有の番号].heteml.jp username: データベース名 password: パスワード encoding: utf8
セッション暗号化用鍵の生成とDBの初期化を行います。
rake config/initializers/session_store.rb rake db:migrate RAILS_ENV=production rake redmine:load_default_data RAILS_ENV=production
メールの送信情報を修正します。
cp config/email.yml.example config/email.yml vi config/email.yml
修正内容は以下の通りです。
production: delivery_method: :smtp smtp_settings: address: smtp0.heteml.jp port: 587 domain: [自ドメイン名] authentication: :login user_name: [メール送信時の認証に利用するユーザ名] password: [パスワード] ***RedmineとApacheとの連携(CGI呼び出し) 以下を参考にしました。 -[http://moooori-blog.undo.jp/archives/661:title=pop().stack().jump(); » Blog Archive » さくらのレンタルサーバーにRuby on Railsを入れる] まずhetemlのドメイン・メール設定で、Webサーバのドキュメントルートとなっているディレクトリを確認します(独自ドメインを利用していない場合は /home/sites/heteml/[ユーザ固有のパス]/web)。確認できたら、redmine-0.8.7/publicに対するシンボリックリンクを作成します。 >|sh| cd ~/ ln -s /home/sites/heteml/[ユーザ固有のパス]/redmine-0.8.7/public /home/sites/heteml/[ユーザ固有のパス]/web/redmine
redmine-0.8.7/public/.htaccessファイルを修正します。
cd redmine-0.8.7 vi public/.htaccess
修正内容は以下の通りです。
#AddHandlerを全てコメント #<IfModule mod_fastcgi.c> # AddHandler fastcgi-script .fcgi #</IfModule> #<IfModule mod_fcgid.c> # AddHandler fcgid-script .fcgi #</IfModule> #<IfModule mod_cgi.c> # AddHandler cgi-script .cgi #</IfModule> #Options +FollowSymLinks +ExecCGI # (中略) #<IfModule mod_fastcgi.c> # RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] #</IfModule> #<IfModule mod_fcgid.c> # RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] #</IfModule> #<IfModule mod_cgi.c> # RewriteRule ^(.*)$ dispatch.cgi [QSA,L] #</IfModule> #dispatch.cgiに対するRewriteRuleを追加 RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
dispatch.cgiを修正します。
cp public/dispatch.cgi.example public/dispatch.cgi chmod 755 public/dispatch.cgi vi public/dispatch.cgi
以下の記述を、
#!/usr/bin/env ruby require "dispatcher"
以下のように修正します。
#!/usr/bin/ruby #require "dispatcher" require "/home/sites/heteml/[ユーザ固有のパス]/.gem/gems/rails-2.1.2/lib/dispatcher"
また、config/environment.rbの修正も行います。
vi config/environment.rb
修正内容は、productionモードの有効化と、環境変数やモジュール読み込みです。
ENV['RAILS_ENV'] ||= 'production' $LOAD_PATH.push("/usr/lib/ruby/1.8") $LOAD_PATH.push("/home/sites/heteml/users31/j/u/n/jun116/.gem/lib") ENV['GEM_HOME'] ||= '/home/sites/heteml/users31/j/u/n/jun116/.gem/'
最後にディレクトリの権限を変更します。
chmod -R 777 files log tmp vendor public/plugin_assets
以上で起動するはず。お疲れさまでした。