Apache + Passenger不起作用,为什么?

时间:2011-10-29 20:11:17

标签: ruby-on-rails-3 apache2 passenger

我尝试在Apache设置中设置Passenger,

我收到此错误:

A source file that the application requires, is missing.

It is possible that you didn't upload your application files correctly. Please check whether all your application files are uploaded.
A required library may not installed. Please install all libraries that this application requires.

Further information about the error may have been written to the application's log file. Please check it in order to analyse the problem.

Error message:
    no such file to load -- config/environment
Exception class:
    LoadError
Application root:
    /home/username/Sites/railsapp/ 
Backtrace:
    #   File   Line   Location
    0   /usr/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb   36   in `require'
    1   /usr/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb   36   in `require'
    2   /etc/httpd/passenger/lib/phusion_passenger/railz/application_spawner.rb   303   in `preload_application'
    3   /etc/httpd/passenger/lib/phusion_passenger/railz/application_spawner.rb   252   in `block in initialize_server'
    4   /etc/httpd/passenger/lib/phusion_passenger/utils.rb   230   in `report_app_init_status'
    5   /etc/httpd/passenger/lib/phusion_passenger/railz/application_spawner.rb   237   in `initialize_server'
    6   /etc/httpd/passenger/lib/phusion_passenger/abstract_server.rb   193   in `start_synchronously'
    7   /etc/httpd/passenger/lib/phusion_passenger/abstract_server.rb   162   in `start'
    8   /etc/httpd/passenger/lib/phusion_passenger/railz/application_spawner.rb   213   in `start'
    9   /etc/httpd/passenger/lib/phusion_passenger/spawn_manager.rb   261   in `block (2 levels) in spawn_rails_application'
    10   /etc/httpd/passenger/lib/phusion_passenger/abstract_server_collection.rb   126   in `lookup_or_add'
    11   /etc/httpd/passenger/lib/phusion_passenger/spawn_manager.rb   255   in `block in spawn_rails_application'
    12   /etc/httpd/passenger/lib/phusion_passenger/abstract_server_collection.rb   80   in `block in synchronize'
    13   < td=""> <>  prelude>   10:in `synchronize'
    14   /etc/httpd/passenger/lib/phusion_passenger/abstract_server_collection.rb   79   in `synchronize'
    15   /etc/httpd/passenger/lib/phusion_passenger/spawn_manager.rb   254   in `spawn_rails_application'
    16   /etc/httpd/passenger/lib/phusion_passenger/spawn_manager.rb   153   in `spawn_application'
    17   /etc/httpd/passenger/lib/phusion_passenger/spawn_manager.rb   286   in `handle_spawn_application'
    18   /etc/httpd/passenger/lib/phusion_passenger/abstract_server.rb   351   in `main_loop'
    19   /etc/httpd/passenger/lib/phusion_passenger/abstract_server.rb   195   in `s  tart_synchronously'
    20   /etc/httpd/passenger/bin/passenger-spawn-server   61   in `'

我的vhost apache config:

<VirtualHost *:80>
   ServerName railsapp
   DocumentRoot "/home/username/Sites/railsapp/public "
   RailsEnv development
   PassengerAppRoot /home/username/Sites/railsapp/ 
   <Directory /home/username/Sites/railsapp/public/>
        Allow from all
        Options -MultiViews
        Order allow,deny
   </Directory>
</VirtualHost>

我找不到为什么会收到此错误。如果我用WEBRick运行应用程序,一切正常。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您在production.rb中有一个名为/home/username/Sites/railsapp/config/environments的文件吗?当乘客正在运行RAILS_ENV生产时,这似乎缺失了。

WEBrick将在该文件夹中使用development.rb,因为正在运行RAILS_ENV。

答案 1 :(得分:0)

您的DocumentRoot包含空格。

"/home/username/Sites/railsapp/public "

我建议不要引用此字符串。

/home/username/Sites/railsapp/public