我正在使用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修復程序放在capistrano的配方中,但這看起來像一個醜陋的黑客。
爲什麼部署後/ tmp文件夾不具有「正確」權限,我該如何解決?
您是否通過root用戶進行部署?如果是這樣,你可能想重新考慮這一點。 – 2011-12-27 21:26:20
我聽說這很糟糕:)但只是改變用戶會有同樣的問題,對不對? – Frexuz 2011-12-27 21:31:17