2011-09-07 4 views
0

내 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 

이 문제의 원인은 무엇입니까?

답변

0

SnapshotMadeleine.new가 FileUtils.mkdir에 오류가 있음을 감안할 때 디렉토리를 만들려고합니다.

레일 사용자는 이미 존재하는 폴더에 쓰는 것이 아니라 폴더를 만들 수 있도록 웹 응용 프로그램의 루트 (?)에 쓸 수있는 권한이 있어야합니다. 또는 이미 존재하는 경우 디렉토리를 만들지 않도록 SnapshotMadeleine의 소스를 수정하십시오.

+0

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