Ruby:使用乘客的问题

时间:2009-11-16 15:53:31

标签: ruby-on-rails apache passenger

我首先在我的debian上安装了mod_ruby,之后(在发现它太慢之后)我想为我的apache挑选乘客

现在我遇到了问题,乘客是由apache成功加载的,但是没有使用,即使我正确配置了所有内容,例如:

<VirtualHost *>
        ServerAdmin webmaster@localhost
        ServerName xyz
        DocumentRoot /var/www/vhosts/default/htdocs/
        RailsBaseURI /rails
</VirtualHost>

乘客的Instad cgi - 模块用于显示rails-apps ...(如果我从“sites-enabled”文件夹中卸载cgi.conf和cgi-load,它就不再工作了......另一方面,如果我卸载passenger.load和passenger.conf文件,它仍然有效......)

那么,我怎样才能强迫apache使用乘客来显示铁路网站?

2 个答案:

答案 0 :(得分:2)

假设您已经安装了乘客并使用Apache正确配置 ...您的DocumentRoot需要指向您的rails应用的public目录。这是一个有效的VirtualHost指令:

<VirtualHost *:80>
  ServerName myapp.local
  DocumentRoot "/path/to/myapp/public"
  RailsEnv development
  <directory "/path/to/myapp/public">
    Order allow,deny
    Allow from all
  </directory>
</VirtualHost>

事先,还要确保已启用命名虚拟主机:

NameVirtualHost *:80

此外,您确实正确配置了乘客模型。例如:

LoadModule passenger_module /path/to/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
PassengerRoot /path/to/ruby/gems/1.8/gems/passenger-2.2.5
PassengerRuby /path/to/bin/ruby

答案 1 :(得分:0)

您是否在rails应用程序中重新配置了relative_url_root?例如,在config/environment.rb

config.action_controller.relative_url_root = "/rails"