내 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과 루비 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 디렉토리가 레일스 사용자의 홈 디렉토리에 있고 디렉토리가 777이기 때문에 레일 사용자는 쓰기 권한이 있습니다. 어쨌든, 나는 틀린 것은 아니지만, 대신에 씬을 사용하여 문제가 해결되었습니다. webrick. –