Bundler сообщает о драгоценных камнях, которых нет;Rails невидим для Apache - PullRequest
2 голосов
/ 23 февраля 2012

Справочная информация / настройка

Я установил Ruby 1.9.3-p0 в системе RedHat 6.

Я запустил passenger-install-apache2-module и вставил фрагмент кода конфигурации в мой httpd.conf:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11
PassengerRuby /usr/local/bin/ruby

Я добавил конфигурацию vhost ...

<VirtualHost *:80>

    ServerName contracker-rails3-test.mysite.com
    ServerAlias contracker-rails3-test

    DocumentRoot /opt/deployed_rails_apps/contracker/current/public

    <Directory /opt/deployed_rails_apps/contracker/current/public>
        AllowOverride all
        Options -MultiViews
    </Directory>

    RailsEnv production

</VirtualHost>

Я развернул свое приложение с помощью Capistrano.

Затем (в конце концов) смог получить Bundlerустановить драгоценные камни приложения.Итак, теперь Bundler сообщает, что все гемы установлены и все в порядке.

Основная проблема:

Когда я захожу в браузер по URL-адресу приложения, я просто получаю страницу приветствия Apache по умолчанию.Приложение не производит никакого вывода журнала (даже не создает файлы журнала), поэтому кажется, что Rails вообще не доступен.

Вещи, которые я проверял

Я проверил, что конфигурация vhostправильно, поместив файл index.html в настроенное место.Этот файл отображается, когда я пытаюсь использовать URL-адрес, поэтому с vhost все в порядке.

Я проверил наличие и доступность рабочей БД.

Приложение отлично работает на моем ноутбуке для разработки под OS X.

Я попробовал этот эксперимент в корне развернутого приложения ...

[em@web3 current]$ which ruby
/usr/local/bin/ruby

[em@web3 current]$ which gem
/usr/local/bin/gem

[em@web3 current]$ gem list -l

*** LOCAL GEMS ***

actionmailer (3.2.1)
actionpack (3.2.1)
activemodel (3.2.1)
activerecord (3.2.1)
activeresource (3.2.1)
activesupport (3.2.1)

[...lots of gems...]

rails (3.2.1)

[...lots of gems...]

[em@web3 current]$ which rails
/usr/bin/which: no rails in (/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/emicha/bin)

Почему он не находит Rails?

Также попробовал это ...

[em@web3 current]$ rails console
-bash: rails: command not found

Bundler производит странные, бессмысленные ошибки

Я подозреваю, что это может иметь какое-то отношение к Bundler, потому что я не могу запустить какие-либо задачи Rake ...

[em@web3 current]$ bundle exec rake -T
Could not find journey-1.0.2 in any of the sources

Также попытался...

[em@web3 current]$ rake -T
Could not find journey-1.0.2 in any of the sources
Run `bundle install` to install missing gems.

Почему попытка запустить задачу Rake заставила Бендлера искать камень под названием "путешествие" или какой-либо другой камень вообще?

И так ...

Кто-нибудь имеет представление о какой-либо части этого?

Есть ли что-нибудь еще, что я могу проверить?

1 Ответ

1 голос
/ 24 февраля 2012

SELinux снова.

Он не позволяет Apache загружать Passenger / Rails. Я отключил его для всей системы, и теперь приложение доступно. Я должен выяснить, как оставить его включенным, но разрешить Rails.

Тем не менее, Bundler по-прежнему демонстрирует то же поведение с или без SELinux - «Не удалось найти гем xyz», который фактически установлен.

...