2012-01-27 69 views
1

我試圖使用虛擬服務器方法,這是我認爲我的問題來自於安裝apache2上的rails應用程序。我嘗試了獨立的乘客安裝(在昨天下午花費在嘗試使apache工作之後)並且工作得很好,但是我想使用apache。從apache +乘客500錯誤

Apache的錯誤日誌顯示:

[Thu Jan 26 22:36:18 2012] [notice] caught SIGTERM, shutting down 
[Thu Jan 26 22:36:20 2012] [notice] Apache/2.2.20 (Ubuntu) Phusion_Passenger/3.0.11 configured -- resuming normal operations 
cache: [GET /videos] miss 

的SIGTERM是我的重啓動Apache。緩存未命中是我試圖查看模型的頁面。

虛擬主機設置

<VirtualHost *:80> 

    DocumentRoot /home/dave/prodspace/river/public 
    <Directory /> 
      Options FollowSymLinks 
      AllowOverride None 
    </Directory> 
    <Directory /home/dave/prodspace/river/public/> 
      Options Indexes FollowSymLinks -MultiViews 
      AllowOverride All 
      Order allow,deny 
      allow from all 
    </Directory> 

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
    <Directory "/usr/lib/cgi-bin"> 
      AllowOverride None 
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
      Order allow,deny 
      Allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/access.log combined 

Alias /doc/ "/usr/share/doc/" 
<Directory "/usr/share/doc/"> 
    Options Indexes MultiViews FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.0/255.0.0.0 ::1/128 
</Directory> 

    </VirtualHost> 

包含一切的/ home /戴維/ prodspace /河,我已設置組的權限www數據爲河流/公共文件夾。我已經啓用了該網站,並通過 重啓apache的須藤a2ensite河 須藤服務的Apache2重啓

系統規格是:使用RVM 紅寶石1.9.2p290 乘客3.0.11 軌3.2.0 Apache的安裝 紅寶石相關的東西2.2(通過apt-get的包安裝) 的Ubuntu 11.10(X86服務器版)

任何幫助總是讚賞...

回答

1

生產數據庫未設置。該修復結束了運行:

RAILS_ENV=production rake db:create db:schema:load 
1

我有我的工作經常處理這個。即開始發揮作用,有幾件事情在這裏如下:(注:我用RVM對我的開發工作也)

  • cd到你的應用程序目錄的項目
  • 確保您已經安裝了乘客(寶石安裝 - 無ri - 無rdoc乘客
  • 然後確保運行乘客apache模塊安裝(rvmsudo乘客安裝 - apache2模塊)
  • 然後,您要確保啓用在你的/ etc/apache2/mods啓用的apache mods
    • 你會想要pas segy.load & passenger.conf都在你的apache配置中啓用。現在

,應該注意的是,除非您在此處執行附加點點引用here乘客沒有發揮好。

建立在你的config /目錄名爲setup_load_path.rb一個新的文件,並粘貼在那裏:

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm') 
    begin 
    rvm_path  = File.dirname(File.dirname(ENV['MY_RUBY_HOME'])) 
    rvm_lib_path = File.join(rvm_path, 'lib') 
    $LOAD_PATH.unshift rvm_lib_path 
    require 'rvm' 
    RVM.use_from_path! File.dirname(File.dirname(__FILE__)) 
    rescue LoadError 
    # RVM is unavailable at this point. 
    raise "RVM ruby lib is currently unavailable." 
    end 
end 

現在重新啓動Apache和它應該工作,如果你的路由的設置正確。

+0

另外,如果你希望你的應用程序在開發模式調試目的運行,將它添加到您的身體。 RailsEnv開發 – Skittles 2012-01-29 03:30:43

+0

我沒有看到apache2中有passenger.load或passenger.conf的行。conf,並且乘客不在mods-enabled或mods-available的列表中。 我確實安裝了乘客3.0.11,我運行了passenger-install-apache-module並複製了三行並將它們附加到apache2.conf。 – dave 2012-01-29 05:44:41

+0

如果您將這些行復制到apache2.conf中,那麼您無需擔心啓用了mods的內容。這個關鍵的方面是setup_load_path.rb文件。這是因爲乘客試圖使用您的系統ruby和rails而不是您已安裝的gemset。你能粘貼'寶石列表'的輸出嗎? – Skittles 2012-01-29 05:55:20