2010-01-19 56 views
3

我想在使用Passenger的Ubuntu 9.04上部署Rails應用程序。部署在Passenger上的Rails應用程序只顯示應用程序公共目錄的索引

據我所見,我已經正確配置了所有東西;然而,當我將瀏覽器指向我的域時,我所看到的只是應用程序公共目錄的索引。

我的預感是乘客沒有啓動 - 在just-plain-folks.co.uk的底部,根本沒有提及乘客。日誌文件中沒有什麼有趣的地方。

這是我的配置:

/etc/apache2/mods-enabled/passenger.conf 

<IfModule passenger_module> 
    PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9 
    PassengerRuby /usr/bin/ruby1.8 
</IfModule> 

/etc/apache2/mods-enabled/passenger.load 

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9/ext/apache2/mod_passenger.so 

/etc/apache2/sites-enabled/just-plain-folks.co.uk 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName just-plain-folks.co.uk 
    ServerAlias www.just-plain-folks.co.uk 
    DocumentRoot /srv/www/just-plain-folks.co.uk/public_html/ 
    ErrorLog /srv/www/just-plain-folks.co.uk/logs/error.log 
    CustomLog /srv/www/just-plain-folks.co.uk/logs/access.log combined 
</VirtualHost> 

/srv/www/just-plain-folks.co.uk/public_html/是simlink我的應用程序的公共目錄


如果還有其他可能對診斷有用的東西,請告訴我。任何幫助深表感謝!

+0

是您的應用程序的公共目錄 「的public_html」 或 「公」?如果前者,你爲什麼重命名它? – BryanH 2010-01-19 20:09:19

回答

3

嘗試開溝符號鏈接並直接爲公衆指點。我相信乘客在這個領域有點神奇,就如何檢測導軌應用程序。

即使該符號鏈接源被稱爲public,我懷疑它仍然會在/srv/www/just-plain-folks.co.uk/中尋找rails_root。

+1

非常感謝你!你不知道我在這方面有多少頭髮。 – grifaton 2010-01-20 19:02:47

+0

或者您可以使用PassengerResolveSymlinksInDocumentRoot選項並保留符號鏈接。 – knx 2013-08-05 01:13:32

0

(更新:我錯過了你想從文檔根目錄服務的事實)

嘗試關閉多視圖

<VirtualHost *:80> 

    ... 

    <Directory /srv/www/just-plain-folks.co.uk/public_html> 
     Allow from all 
     Options -MultiViews 
    </Directory> 

</VirtualHost> 
+0

這仍然給出相同的結果 - 但謝謝你的建議。 – grifaton 2010-01-19 19:50:08

+0

我現在補充說,我仍然得到相同的結果。但再次感謝! – grifaton 2010-01-19 23:28:07

0

好吧,我和Sinatra,Phusion Passenger和Apache有類似的問題。我的公共目錄被嵌套在深層的某處,而視圖目錄也是這樣。

因此,下列配置使我的應用程序運行。

  • 在Apache中的conf文件,而不是/home/me/projects/fantasy-app/somewhere/nested/public,我只是在DocumentRoot<Directory>指令使用/home/me/projects/fantasy-app/public
  • 在我app.rbonfig.ru指的是,我有以下幾點:

    set :public_folder, 'build/development/public' 
    set :views, Proc.new { File.join(root, "build/development/views") } 
    
相關問題