[英]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錯誤記錄工作。
我知道這個問題之前已經發布了幾次,但我嘗試了所有我能找到的東西,所以這就是我的嘗試:
chmod 0666
。 www-data
,設置chmod 0666
。 config.log_level = :info
。 檢查Apache是否正在使用www-data用戶(“etc / apache2 / envvars”):
export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data
“etc / apache2 / mods-available / passenger.conf”具有為Passenger設置的默認用戶:
<IfModule mod_passenger.c> PassengerRoot /usr PassengerRuby /usr/bin/ruby PassengerDefaultUser www-data </IfModule>
“config.ru”和“configs / environment.rb”的所有者是www-data
我的虛擬主機已相應設置:
DocumentRoot /var/www/rails/myapp/public RackBaseURI / RackEnv production PassengerMaxPoolSize 4
已經閱讀並嘗試了在這些地方建議的所有修復:
(這就是我現在所能記住的一切......)
我的一些環境設置:
這個問題現在已經解決,盡管問題本身的原因並不完全清楚。
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.