2010-01-19 36 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") } 
    
相关问题