Windows版Railsで開発したWebアプリケーションをLinux上のApacheで動かす
まる2日費やしました。orz
Linux(Debian)上で動かす場合は以下のようにする。
が表示されるように設定
(Alias or リンク)と、Directoryの設定
- Apacheがmod_rewriteを使用するための設定
(省略)
- public/.htaccessに以下を追加
RewriteBase /rails # railsはアプリケーション名
- public以下のdispatch.cgiと、dispatch.rbの1行目を以下のように修正する。
#!/C:/ruby/bin/ruby → #!/usr/bin/ruby
- dispatch.cgiを実行可能にする
chmod 755 dispatch.cgi
- tmp以下のsessionを削除し、logファイルを書き込み可能にする
rm tmp/sessions/* chmod 666 log/*
- MySQLのDB名やユーザ名などが違う場合は以下のファイルを修正する
config/database.yml
- Apacheを再起動する。
久しぶりに、どっぷりはまりました。
さらにいえば、XML形式でレスポンスを返すような場合、
render :layout => false, :xml => @xml
みたいな感じで出来るのはいいが、同じcontroller内で、
p @xml
とかやってると、わけのわからんエラー(Malformed header from script...)が出るので注意。
しかし、噂どおりのもっさり感なので、FastCGIにするか、それとも他のものにするか悩み中。