8/26/2006

一開始 Application Error 的問題

當你在開發Rails 程式的時候,突然會發現『疑,他不動了』...畫面上還出現
Application error

Change this error message for exceptions thrown outside of an action (like in Dispatcher setups or broken Ruby code) in public/500.html
假設一開始初始化你的 Project ,就有 Application Error 問題,通常問題是出現在
  • 權限
  • Ruby on Rails 的環境架設錯誤
這兩個部份。權限部份請確定你的 log/ tmp/ 資料夾權限都是可讀寫,並且請確認你跑的 Web Server 可以讀寫到這兩個資料夾。意思就是說,如果當你使用 lighttpd ,系統通常都會用 lighttpd 這個 user 來啟動 lighttpd,請確認 lighttpd 這個 user 是否可以讀寫 log/ tmp/ 。如果你使用 webrick,你只要確認你現在使用者有權限可以讀寫即可。

如果你對於我講的話霧撒撒的,一個小建議是你先一開重新建立一個新的 Rails 資料夾
rails test
進入這個資料夾,不要切換任何使用者,強迫使用 Webrick 啟動
ruby script/server webrick
之所以要這麼作是因為 script/server 會偵測有沒有 lighttpd ,如果有就會自動改成 lighttpd 啟動。只有在後面加入 webrick ,才會強迫使用 webrick 來啟動 Rails 。通常只要這樣作,絕對沒有權限的問題。

你可以試試看使用 webrick 開啟可不可以動,如果用 webrick 可以用,但是 apache 或是 lighttpd 不可以用,很有可能是lighttpd 或是 apache 沒有存取 tmp/ log/ 的權限問題。

解決方式:

你可以試試看,將 rails 目錄下面的 tmp 目錄修改權限(就是改成web server 的使用者,這裡的範例是 lighttpd )
chonw -R lighttpd tmp/ log/


1 則留言:

一顆墮落蘋果 提到...

chonw -R lighttpd tmp/ log/

只是看到指令可能當時打錯了。