Redmine つまったところ

何度かいろんな環境で Redmine を試していますが、

で詰まったのでメモ。

passenger/apache の設定

Phusion Passenger users guide あたりを参考にした。

LoadModule passenger_module /home/USER/local/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so   
PassengerRoot /home/USER/local/lib/ruby/gems/1.8/gems/passenger-2.0.3
PassengerRuby /home/USER/local/bin/ruby
  
NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /home/USER/rails
  RailsBaseURI /redmine           # Redmine
  RailsBaseURI /retro             # Retrospectiva
</VirtualHost>

これで、Apache 経由で rails アプリにアクセスできる (ハズ)。
ほかの普通の CGI や静的 HTML にどうやってアクセスできるようにするのかは未検証。

スタイルシートが反映されない

Passenger(mod_rails for Apache)を Ubuntu にインストール - ひげぽん OSとか作っちゃうかMona- にあるとおり、public/.htaccess

Options +FollowSymLinks +ExecCGI

コメントアウトすれば OK・・・かと思っていたら、自分の環境では mod_rewrite が入っていなかったらしく、ついでに

$ sudo a2enmod rewrite

してやると、スタイルシートが反映された。

Subversion のバージョンちがい

Redmine は "svn" で見つかる Subversion を使用する。
ので、システムに svn に入っている状態で、なおかつ自前で Subversion を (標準パス?に入っていない /home/USER/local/bin などに) インストールすると

が異なって、Redmine 上の「リポジトリ」や「活動」が見れないことがある (「リポジトリに、エントリ/リビジョンが存在しません」と表示される)。
エラーログ (/var/log/apache2/error.log) を見ると、

Expected FS format '2'; found format '3' 

のように表示されている場合が、これに該当する。

Nabble - NetBeans - Japanese Users - svn: Expected FS format '2'; found format '3' によると、

format 2: Subverion 1.4 以降でアクセス可能
format 3: Subverion 1.5 以降でアクセス可能

とのことなので、Redmine が参照する svn コマンドのパスを変更することで対応できた。
参照パスを変更するには、lib/redmine/scm/adapters/subversion_adapter.rb の SVN_BIN を下記のように書き換えてやればよい。

# SVN executable name
# SVN_BIN = "svn"
SVN_BIN = "/home/USER/local/bin/svn"

リポジトリの表示

上記の対応をしてもなお 500 エラーで「リポジトリ」が見えない場合は、以前 Redmine の不具合 -- 「活動」や「リポジトリ」でエラー でふれた通り、

unless '1.9'.respond_to?(:force_encoding)
  String.class_eval do
    begin
      remove_method :chars
    rescue NameError
      # OK
    end
  end
end

で対応できる。