söndag 2 november 2008

ImageScience + Rails + Passenger = Permission denied

Det här kanske kan vara till hjälp för andra som stöter på samma problem som jag. Bildhantering är ganska roligt i Ruby on Rails. Tyvärr drar det mest kraftfulla alternativet RMagick väldigt mycket minne. Minne är ganska dyrt på delade servrar, så jag installerade ImageScience med Ruby Inline som ett lättviktsalternativ till RMagick. I produktionsläget fick jag ett felmeddelande: Errno::EACCES: Permission denied - /var/www/.ruby_inline Inga problem, tänkte jag och körde en chmod 777 på /var/www/.ruby_inline Men det ville inte Ruby Inline vara med om: .ruby_inline is insecure (40777). It may not be group or world writable. Exiting. Så istället låter jag Ruby Inline jobba mot applikationens tmp-mapp. Det gör du enklast genom att öppna config/environment.rb och lägga till följande kod någon stans i början av filen. ENV['INLINEDIR'] = File.join(File.dirname(__FILE__),'../tmp') Sedan beror det lite på vilken under vilken användare du kör Passenger, men du kanske även kan behöva se till att rättigheterna på din tmp-mapp är okej i din deploy.rb (om du använder Capistrano). Standardanvändaren för Passenger är www-data.

Inga kommentarer:

Skicka en kommentar