Я пытаюсь разместить приложение 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 или любые другие кодовые манипуляторы из-за того, что вы находитесь за корпоративным брандмауэром. Это, к сожалению, нецелесообразно.
Я ценю любую помощь, спасибо большое. Дайте мне знать, если кому-то понадобится, чтобы я опубликовал более подробную информацию.
Как загружается server.conf? может быть, он включается дважды? –
в файле httpd.conf, я 'Include conf.d/*. Conf', но я не вижу никаких других ссылок на server.conf или других файлов .conf. – AHalbert