私のrails3アプリケーションは、オブジェクトを格納するためにmadeleine(http://madeleine.rubyforge.org/)を使用しています。レールで許可エラー3
m = SnapshotMadeleine.new("data_dir") {
Array.new
}
このコードはローカルマシンで正常に動作しますが、サーバーでエラーが発生します。
Permission denied - data_dir
トレースは、
/home/foo/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:243:in `mkdir'
/home/foo/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:243:in `fu_mkdir'
/home/foo/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:217:in `block (2 levels) in mkdir_p'
/home/foo/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:215:in `reverse_each'
/home/foo/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:215:in `block in mkdir_p'
/home/foo/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:201:in `each'
/home/foo/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:201:in `mkdir_p'
madeleine (0.7.3) lib/madeleine.rb:319:in `ensure_directory_exists'
madeleine (0.7.3) lib/madeleine.rb:314:in `initialize'
madeleine (0.7.3) lib/madeleine.rb:48:in `new'
madeleine (0.7.3) lib/madeleine.rb:48:in `new'
でこのエラーがDATA_DIRディレクトリが既に存在しているかいないかが起こります。私はdata_dirディレクトリとルートディレクトリ777の許可を変更しましたが、エラーはまだ発生します。私が使用
はRVMと3.0とRuby 1.9.2-P290レール、と私は簡単なテストコードを書いて、それがエラーなしで働いていた
rails s -d -e production
でサーバーを起動します。
require 'rubygems'
require 'madeleine'
madeleine = SnapshotMadeleine.new("data_dir") do
Array.new
end
madeleine.take_snapshot
この問題の原因は何ですか?
appディレクトリがrailsユーザのホームディレクトリの下にあり、ディレクトリが777であるため、railsユーザは書き込み権限があります。とにかく、何が間違っているのかわかりませんが、問題は、 webrick。 –