簡體   English   中英

Ruby on Rails安裝程序:無法訪問日志文件

[英]Ruby on Rails Setup: Unable to access log file

我是第一次建立Ruby on Rails; 在我的服務器上,我已經創建並加載了默認的rails應用程序。 我可以查看默認頁面(“歡迎乘坐!你正在騎Rails”),但是當我點擊“查看應用程序環境”鏈接時,它會生成500錯誤。

(你可以在這里查看 。)

我想知道更多關於錯誤的信息,但是,日志文件(“log / production.log”)是空的。 查看我的Apache日志,我發現:

Rails錯誤:無法訪問日志文件。 請確保/var/www/rails/myapp/log/production.log存在且為chmod 0666.日志級別已提升為WARN,輸出將定向到STDERR,直到問題得到解決。

所以,我實際上想讓我的Ruby on Rails錯誤記錄工作。

我知道這個問題之前已經發布了幾次,但我嘗試了所有我能找到的東西,所以這就是我的嘗試:

  1. 創建“log / production.log”文件,將所有者設置為www-data,設置chmod 0666
  2. 將“log”文件夾的所有者設置為www-data ,設置chmod 0666
  3. 仔細檢查我的生產環境設置,以便設置config.log_level = :info
  4. 檢查Apache是​​否正在使用www-data用戶(“etc / apache2 / envvars”):

     export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data 
  5. “etc / apache2 / mods-available / passenger.conf”具有為Passenger設置的默認用戶:

     <IfModule mod_passenger.c> PassengerRoot /usr PassengerRuby /usr/bin/ruby PassengerDefaultUser www-data </IfModule> 
  6. “config.ru”和“configs / environment.rb”的所有者是www-data

  7. 我的虛擬主機已相應設置:

     DocumentRoot /var/www/rails/myapp/public RackBaseURI / RackEnv production PassengerMaxPoolSize 4 

已經閱讀並嘗試了在這些地方建議的所有修復:

(這就是我現在所能記住的一切......)

我的一些環境設置:

  • Ubuntu 11.10在Amazon EC2上運行
  • Apache 2.2.20
  • RVM 1.10.2
  • Ruby 1.9.3p0
  • Rails 3.1.3

這個問題現在已經解決,盡管問題本身的原因並不完全清楚。

Apache和Passenger(又名ModRails)有一些奇怪的配置問題。 存在兩個模塊:一個似乎與Apache(?)打包在一起,另一個通過passenger-install-apache2-module 當我指出預安裝的時候,我遇到了這個日志記錄問題。 當我指向passenger-install-apache2-module部署的那個時,我遇到了一個完全不同的問題,即Passenger會因為段錯誤而崩潰(請參閱我在這里的 ServerFault帖子。)

最后,我完全擦除了我的服務器並執行了從基礎Ubuntu AMI(在Amazon EC2上運行使得這很容易)的所有內容的干凈安裝。)重新安裝后,我運行了passenger-install-apache2-module並配置了Apache來加載由它部署的模塊。 這次,模塊沒有崩潰,但出現了日志錯誤。 我在我的Rails應用程序的根目錄上設置chmod 755 ,確保production.log存在並且它至少具有chmod 0666權限。 瞧,問題消失了。

TL; DR重新安裝,確保我使用的是最新的Passenger模塊,並且我的文件權限設置正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM