我正在尝试使用Passenger在Ubuntu 9.04上部署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 admin@just-plain-folks.co.uk
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 :(得分:3)
尝试放弃符号链接并直接指向公共。我相信乘客在这方面有点神奇,因为它如何检测rails应用程序。
即使符号链接源被称为公共,我怀疑它仍然会在/srv/www/just-plain-folks.co.uk/
中寻找rails_root。
答案 1 :(得分:0)
(更新:我错过了你试图从docroot提供服务的事实)
尝试关闭MultiViews
<VirtualHost *:80>
...
<Directory /srv/www/just-plain-folks.co.uk/public_html>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
答案 2 :(得分:0)
好吧,我和Sinatra,Phusion Passenger和Apache有类似的问题。我的公共目录嵌套在深处,与views目录相同。
因此,以下配置使我的应用程序运行。
/home/me/projects/fantasy-app/somewhere/nested/public
和/home/me/projects/fantasy-app/public
指令中使用DocumentRoot
,而不是<Directory>
。在app.rb
引用的onfig.ru
中,我有以下内容:
set :public_folder, 'build/development/public'
set :views, Proc.new { File.join(root, "build/development/views") }