after deploying rails app with apache and passenge

2019-07-04 20:19发布

问题:

i have deployed my rails app with apache2 and passenger. everything was going smoothly but after deploying it says the page you were looking for doesn't exist. my app name is opengrok

my apache cofiguration is in /etc/apache2/sites-avaibleable/opengrok

<VirtualHost *:80>
  ServerName localhost
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /var/www/opengrok/public
  <Directory /var/www/opengrok/public>
     # This relaxes Apache security settings.
     AllowOverride all
     # MultiViews must be turned off.
     Options -MultiViews
  </Directory>

whats the wrong then??

And the log says

 I, [2013-09-16T13:00:41.656536 #6184]  INFO -- : Started GET "/" for 107.109.10.218 at         2013-09-16 13:00:41 +0600
 F, [2013-09-16T13:00:41.663573 #6184] FATAL -- :
 ActionController::RoutingError (No route matches [GET] "/"):
 actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
 railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
 rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
 rack (1.5.2) lib/rack/runtime.rb:17:in `call'
 activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
 railties (4.0.0) lib/rails/engine.rb:511:in `call'
 railties (4.0.0) lib/rails/application.rb:97:in `call'
 passenger (4.0.17) lib/phusion_passenger/rack/thread_handler_extension.rb:77:in  `process_request'
 passenger (4.0.17) lib/phusion_passenger/request_handler/thread_handler.rb:140:in `accept_and_process_next_request'
 passenger (4.0.17) lib/phusion_passenger/request_handler/thread_handler.rb:108:in `main_loop'
 passenger (4.0.17) lib/phusion_passenger/request_handler.rb:441:in `block (3 levels) in start_threads'

rake routes shows in my home directory is

Prefix Verb URI Pattern                    Controller#Action
           root GET /                              opengrok_pages#index
opengrok_pages_show GET /opengrok_pages/show(.:format) opengrok_pages#show
opengrok_pages_load GET /opengrok_pages/load(.:format) opengrok_pages#load
opengrok_pages_text GET /opengrok_pages/text(.:format) opengrok_pages#text

回答1:

Can you please add "/" after public

DocumentRoot /var/www/opengrok/public/

Also directory root make it like.

<Directory /var/www/opengrok>

also put your rails environment

RailsEnv development

Below is my configuration file one of my project and this is working fine.

<VirtualHost _default_:80>
        ServerName pacerpro-alpha.hoverstate.com
        ServerAlias alpha.pacerpro.com
       # ServerName 23.22.184.199
        DocumentRoot /data/www/pacerpro_1.5/MyECF-Web-Application/current/public/
        ErrorLog "logs/pacerpro-alpha.hoverstate.com-error.log"
        RailsEnv development
        <Directory /data/www/pacerpro_1.5/MyECF-Web-Application/current>
                AllowOverride all
                Options -MultiViews
                Allow from all
        </Directory>