我在生產中運行我的應用程序,診斷500錯誤非常困難。我之前已經開始工作了,但是在通過Capastrano重新部署後,我無法完成此任務。如何正確診斷500錯誤(Rails,Passenger,Nginx,Postgres)
這裏是事實:
- 服務器是安裝nginx的+乘客,和我使用PostgreSQL的 。
- 靜態資產工作正常,因爲我可以在瀏覽器中正常訪問它們。
- 我可以通過
RAILS_ENV=production bundle exec rails console
訪問rails控制檯並執行活動記錄操作(如 從數據庫中檢索數據)。 - 在控制檯內,我可以運行
app.get("/")
,它也返回一個500錯誤(首先顯示運行的查詢以加載 模型)。 - production.log文件從不寫入。我已經爲它設置了權限777。我還將日誌級別設置爲 :調試時沒有任何顯示。
- nginx日誌(乘客也使用)沒有顯示錯誤,它只是通知緩存未命中。
由於沒有使用任何記錄,我不知道該怎麼辦。我已經嘗試在整個應用程序目錄中設置完整權限而沒有任何幫助。重新啓動服務器多次,沒有任何東西。數據庫在那裏,軌道可以清楚地與它溝通。我不確定我是如何讓它第一次運行的。我只是不知道爲什麼rails不會輸出什麼到日誌。
我試過了,它首先抱怨寫訪問tmp目錄,我修好了,然後它通過罰款。我使用相同的數據庫建立了它。所以它只是在生產模式下失敗。 – Brian 2012-04-02 13:04:08