2011-09-07 127 views
0

我Rails3中的應用程序使用鬆糕(http://madeleine.rubyforge.org/)來存儲對象。權限錯誤3

m = SnapshotMadeleine.new("data_dir") { 
    Array.new 
} 

此代碼在我的本地計算機上正常工作,但會在服務器上引發錯誤。

Permission denied - data_dir 

Trace是,

/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的許可,但錯誤依然發生。

我用導軌3.0和紅寶石1.9.2-P290與RVM,我啓動服務器

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目錄。

你應該做的是,軌道用戶有權寫入根(?)的Web應用程序,以便它可以創建文件夾,而不是隻寫一個已經存在的文件夾。 或者修改SnapshotMadeleine的源,因此它不會創建目錄,如果它已經存在。

+0

軌道用戶有權寫,因爲應用程序目錄是軌道用戶的主目錄下,該目錄是777反正,我不明白什麼是錯的,但問題是用薄,而不是解決使用WEBrick。 –