2011-12-27 7 views
1

私はcapistranoを使って新しいRails 3.1サーバーにアプリケーションをデプロイしています。Rails 3.1 - capistranoでのデプロイメント後のアクセス許可

ページを参照しようとすると、レールエラーが発生します。
error.logで見ながら、これは私が見たものである。

ActionView::Template::Error (Permission denied - /var/www/episodecalendar/production/releases/20111227204950/tmp/cache/55B): 
    32:     </div> 
    33:     <div id="footer"> 
    34:     <div id="footer_content"> 
    35:      <% cache("footer") do %> 
    36:    <%= render :partial => "partials/footer" %> 
    37:    <% end %> 
    38:    </div> 
    app/views/layouts/application.html.erb:35:in `_app_views_layouts_application_html_erb___3483336897212790867_58416560' 

明らか/tmpフォルダ内のファイルは、「正しい」権限がありません。例:

[email protected]:/var/www/episodecalendar/staging/current/tmp/cache/assets/C0C/690# ls -la 
total 12K 
drwxr-xr-x 2 root root 4.0K 2011-12-27 21:33 . 
drwxr-xr-x 3 root root 4.0K 2011-12-27 21:33 .. 
-rw-r--r-- 1 root root 2.6K 2011-12-27 21:33 sprockets%2F31007441199035e09c0c45c33930cf06 

それを修正する唯一の方法は、chmod 777 tmp/ -Rあり、その後、サイトはすぐにロードします。

私はカピストラーのレシピにchmodの修正を入れることができましたが、それは醜いハックのようです。
配備後に/ tmpフォルダに「正しい」権限がないのはなぜですか?どのように修正できますか?

+1

rootユーザー経由で導入していますか?もしそうなら、あなたはそれを再考したいかもしれません。 –

+0

私はそれが悪いと聞いたことがあります:)しかし、ユーザーを変えるだけで同じ問題が起こるでしょうか? – Frexuz

答えて

2

はむしろtmpにchmod 777 -R tmp/内のすべてのファイルとフォルダに誰でもアクセスを許可するよりも、あなたは/var/www/episodecalendar/staging/は、Webサーバーを実行するためのアクセスを必要とするものは何でも、ユーザーが再帰的にchown'dchown -R user:group /var/www/episodecalendar/staging)であることを確実にすることを検討する必要があります。

別の[email protected]ユーザーを作成して、(ルートとは異なり)権限の問題がすぐにわかるようにすることをおすすめします。

+0

完全に機能しました。しかし、なぜroot以外のユーザーが突然もっと正確な権限を持っているのかわかりません。 – Frexuz

関連する問題