2015-10-07 4 views
2

Я пытаюсь разместить приложение Rails 4 с Apache и Passenger на машине RHEL 6.3. Мое приложение доступно по IP-адресу на сервере, когда работает служба httpd, но при попытке доступа к странице появляется страница Rails «Что-то не так». Приложение работает правильно при размещении через сервер rails. Я надеюсь, что кто-то с немного больше опыта в хостинге может помочь мне и сказать, где я ошибаюсь.Rails + Пассажир: Недействительное имя маршрута, уже используется

/etc/httpd/conf/httpd.conf включает в себя:

LoadModule passenger_module /usr/lib/ruby/gems/2.2.0/gems/passenger-5.0.20/buildout/apache2/mod_passenger.so 
<IfModule mod_passenger.c> 
    PassengerRoot /usr/lib/ruby/gems/2.2.0/gems/passenger-5.0.20 
    PassengerDefaultRuby /usr/bin/ruby 
</IfModule> 

, который возвращает рубинового /usr/bin/ruby.

/etc/httpd/conf.d/server.conf включает в себя:.

<VirtualHost *:80> 
# !!! Be sure to point DocumentRoot to 'public'! 
    DocumentRoot /var/www/service/public 
    RailsEnv production 
    <Directory /var/www/service/public 
    AllowOverride all 
    Options -MultiViews 
    </Directory> 
</VirtualHost> 

где услуга название моей папке мой Rails проекта в

Ошибка пассажира в/и т.д./HTTPD/журналы/error_log является:

App 23360 stdout: 
[ 2015-10-05 12:05:43.4683 23295/7fd764072700 age/Cor/App/Implementation.cpp:303 ]: Could not spawn process for application /var/www/service: An error occured while starting up the preloader. 
Error ID: aa70e16a 
Error details saved to: /tmp/passenger-error-41xm1e.html 
Message from application: Invalid route name, already in use: 'base' 
You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here: 
http://guides.rubyonrails.org/routing.html#restricting-the-routes-created (ArgumentError) 
/usr/lib/ruby/gems/2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/routing/route_set.rb:538:in `add_route'... 

Я срезал мои маршруты в попытке выяснить, почему он думает, что у меня есть больше, чем один под названием «база», так как это все у меня есть в моих маршрутах:

Service::Application.routes.draw do 

    match 'home' => 'activation#register', :as => :base 

end 

, где home - это всего лишь тестовая ссылка, которая отображает «УСПЕХ».

Я довольно озадачен - я понятия не имею, почему Пассажир считает, что у меня есть несколько маршрутов с именем base, когда есть только один. Мне интересно, сколько маршрутов загружается несколько раз.

Я не могу использовать RVM, yum или любые другие кодовые манипуляторы из-за того, что вы находитесь за корпоративным брандмауэром. Это, к сожалению, нецелесообразно.

Я ценю любую помощь, спасибо большое. Дайте мне знать, если кому-то понадобится, чтобы я опубликовал более подробную информацию.

+0

Как загружается server.conf? может быть, он включается дважды? –

+0

в файле httpd.conf, я 'Include conf.d/*. Conf', но я не вижу никаких других ссылок на server.conf или других файлов .conf. – AHalbert

ответ

2

Автор пассажира здесь. Я думаю, что вы работаете в issue #1596, где небольшое изменение в поведении заставляет некоторые приложения дважды инициализировать Rails. Исправление запланировано для следующей версии, но теперь вы можете просто понизить до 5.0.15.

+0

Исправлена ​​проблема с понижением до 5.0.15. Большое спасибо за помощь! :) – AHalbert