Предупреждение о Jammit при развертывании Locomotive CMS на героку

Я пытаюсь развернуть локомотивную CMS на героку в соответствии с их руководством по установке http://www.locomotivecms.com/support/installation/heroku. Я загрузил активы в корзину S3. Итак, на локальном хосте все работает нормально, но при посещении сайта на хероку выдается сообщение об ошибке:

An error occurred in the application and your page could not be served. Please try again in a few moments.  If you are the application owner, check your logs for details.

Я проверил журналы героку:

    2011-05-23T11:12:25+00:00 heroku[web.1]: Starting process with command: `thin -p 29674 -e production -R /home/heroku_rack/heroku.ru start`
    2011-05-23T11:12:30+00:00 app[web.1]: Jammit Warning: Asset compression disabled -- Java unavailable.
    2011-05-23T11:12:34+00:00 app[web.1]: /app/.bundle/gems/ruby/1.8/gems/mongo-1.3.1/lib/../lib/mongo/connection.rb:518:in `connect': Failed to connect to a master node at localhost:27017 (Mongo::ConnectionFailure)
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongo-1.3.1/lib/../lib/mongo/connection.rb:656:in `setup'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongo-1.3.1/lib/../lib/mongo/connection.rb:101:in `initialize'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongo-1.3.1/lib/../lib/mongo/connection.rb:152:in `new'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongo-1.3.1/lib/../lib/mongo/connection.rb:152:in `from_uri'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongoid-2.0.1/lib/mongoid/config/database.rb:86:in `master'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongoid-2.0.1/lib/mongoid/config/database.rb:19:in `configure'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongoid-2.0.1/lib/mongoid/config.rb:319:in `configure_databases'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongoid-2.0.1/lib/mongoid/config.rb:114:in `from_hash'
    2011-05-23T11:12:34+00:00 app[web.1]:   from (eval):2:in `send'
    2011-05-23T11:12:34+00:00 app[web.1]:   from (eval):2:in `from_hash'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/mongoid-2.0.1/lib/mongoid/railtie.rb:66
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `instance_exec'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `run'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:50:in `run_initializers'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `each'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `run_initializers'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/application.rb:134:in `initialize!'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `send'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /app/config/environment.rb:5
    2011-05-23T11:12:34+00:00 app[web.1]:   from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    2011-05-23T11:12:34+00:00 app[web.1]:   from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    2011-05-23T11:12:34+00:00 app[web.1]:   from config.ru:3
    2011-05-23T11:12:34+00:00 heroku[web.1]: Process exited
    2011-05-23T04:12:35-07:00 heroku[web.1]: State changed from starting to crashed
    2011-05-23T11:12:35+00:00 heroku[router]: Error H10 (App crashed) -> GET morning-night-832.heroku.com/ dyno=none queue=0 wait=0ms service=0ms bytes=0
    2011-05-23T04:12:36-07:00 heroku[nginx]: GET / HTTP/1.1 | 80.218.114.86 | 795 | http | 503
    2011-05-23T11:12:36+00:00 heroku[router]: Error H10 (App crashed) -> GET morning-night-832.heroku.com/favicon.ico dyno=none queue=0 wait=0ms service=0ms bytes=0
    2011-05-23T11:12:39+00:00 heroku[router]: Error H10 (App crashed) -> GET morning-night-832.heroku.com/favicon.ico dyno=none queue=0 wait=0ms service=0ms bytes=0
    2011-05-23T11:30:06+00:00 heroku[router]: Error H10 (App crashed) -> GET morning-night-832.heroku.com/ dyno=none queue=0 wait=0ms service=0ms bytes=0

Судя по всему, есть проблема с jammit и активами.

        2011-05-23T11:12:30+00:00 app[web.1]: Jammit Warning: Asset compression disabled -- Java unavailable.

Я не нашел никаких полезных советов в Google до сих пор. Любые идеи, как это решить?

Обновление: я адаптировал mongoid.yml, но все еще получаю то же сообщение об ошибке, что и выше. Я снова проверил журналы:

    2011-05-23T12:02:56+00:00 heroku[web.1]: Starting process with command: `thin -p 41882 -e production -R /home/heroku_rack/heroku.ru start`
    2011-05-23T12:03:00+00:00 app[web.1]: Jammit Warning: Asset compression disabled -- Java unavailable.
    2011-05-23T12:03:01+00:00 app[web.1]: /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb:48:in `return!': 401 Unauthorized (RestClient::Request::Unauthorized)
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb:220:in `process_result'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb:169:in `transmit'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /usr/ruby1.8.7/lib/ruby/1.8/net/http.rb:543:in `start'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb:166:in `transmit'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb:60:in `execute'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb:31:in `execute'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/resource.rb:54:in `get'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/heroku-1.19.1/lib/heroku/client.rb:540:in `send'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/heroku-1.19.1/lib/heroku/client.rb:540:in `process'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/heroku-1.19.1/lib/heroku/client.rb:522:in `get'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/heroku-1.19.1/lib/heroku/client.rb:113:in `list_domains'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/lib/locomotive/hosting/heroku.rb:41:in `enable_heroku'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/config/initializers/../../lib/locomotive.rb:89:in `configure_hosting'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/config/initializers/../../lib/locomotive.rb:57:in `after_configure'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/config/initializers/../../lib/locomotive.rb:47:in `configure'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/config/initializers/locomotive.rb:3
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:in `load'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:in `load'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:227:in `load_dependency'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:in `load'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/engine.rb:201
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/engine.rb:200:in `each'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/engine.rb:200
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `instance_exec'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `run'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:50:in `run_initializers'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `each'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/application.rb:134:in `initialize!'
    2011-05-23T12:03:01+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `run_initializers'
    2011-05-23T12:03:01+00:00 heroku[web.1]: Process exited
    2011-05-23T05:03:03-07:00 heroku[nginx]: GET / HTTP/1.1 | 80.218.114.86 | 795 | http | 503

Я полагаю, что на этот раз проблема заключается в следующей строке:

    2011-05-23T12:03:01+00:00 app[web.1]: /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb:48:in `return!': 401 Unauthorized (RestClient::Request::Unauthorized)

Я полагаю, мне нужно снова настроить мой логин и пароль для героку. Давайте попробуем это...

Обновление 2: все еще не работает. Ниже моей конфигурации mongoid.yml

    defaults: &defaults
      host: localhost
      port: 27017
      # slaves:
      #   - host: slave1.local
      #     port: 27018
      #   - host: slave2.local
      #     port: 27019

    development:
      <<: *defaults
      database: locomotive_dev

    test:
      <<: *defaults
      database: locomotive_test

    # set these environment variables on your prod server
    production:
      # <<: *defaults
      # database: locomotive_prod

      # other settings for production
      # host: <%= ENV['MONGOID_HOST'] %>
      # port: <%= ENV['MONGOID_PORT'] %>
      # username: <%= ENV['MONGOID_USERNAME'] %>
      # password: <%= ENV['MONGOID_PASSWORD'] %>
      # database: <%= ENV['MONGOID_DATABASE'] %>

      #heroku
      uri: <%= ENV['MONGOHQ_URL'] %>

      # bushido (mongohq_url will also work)
      # uri: <%= ENV['MONGODB_URL'] %>

Мои настройки в config/initializers/locomotive.rb

    require File.dirname(__FILE__) + '/../../lib/locomotive.rb'

    Locomotive.configure do |config|

      # A single locomotive instance can serve one single site or many.
      # If you want to run many different websites, you will have to specify
      # your own domain name (ex: locomotivehosting.com).
      #
      # Ex:
      # config.multi_sites do |multi_sites|
      #   # each new website you add will have a default entry based on a subdomain
      #   # and the multi_site_domain value (ex: website_1.locomotivehosting.com).
      #   multi_sites.domain = 'example.com' #'myhostingplatform.com'
      #
      #   # define the reserved subdomains
      #   # Ex:
      #   multi_sites.reserved_subdomains = %w(www admin email blog webmail mail support help site sites)
      # end
      config.multi_sites = false

      # configure the hosting target for the production environment. Locomotive can be installed in:
      # - your own server
      # - Heroku (you need to create an account in this case)
      # - Bushi.do (see the bushi.do website for more explanations)
      #
      # the possible options are: server, heroku, bushido or auto (default)
      # if you select 'auto', Locomotive will look after specific ENV variables to check
      # the matching platform (Heroku and Bushido set their own ENV variables).
      #
      config.hosting = :auto

      # In case you host Locomotive in Heroku, the engine uses the heroku api to add / remove domains.
      # there are 2 ways of passing heroku credentials to Locomotive
      #   - from ENV variables: HEROKU_LOGIN & HEROKU_PASSWORD
      #   - from this file, see the example below and uncomment it if needed
      config.heroku = {
        :login      => ENV['HEROKU_LOGIN'],
        :password   => ENV['HEROKU_PASSWORD']
      }

      # Locomotive uses the DelayedJob gem for the site import module.
      # In case you want to deploy to Heroku, you will have to pay for an extra dyno.
      # If you do not mind about importing theme without DelayedJob, disable it.
      #
      # Warning: this option is not used if you deploy on bushi.do and we set automatically the value to true.
      config.delayed_job = false

      # configure how many items we display in sub menu in the "Contents" section.
      # config.lastest_items_nb = 5

      # default locale (for now, only en, de, fr, pt-BR and it are supported)
      config.default_locale = :en

      # tell if logs are enabled. Useful for debug purpose.
      config.enable_logs = true

      # Configure the e-mail address which will be shown in the DeviseMailer, NotificationMailer, ...etc
      # if you do not put the domain name in the email, Locomotive will take the default domain name depending
      # on your deployment target (server, Heroku, Bushido, ...etc)
      #
      # Ex:
      # config.mailer_sender = 'support'
      # # => '[email protected]' (Heroku), '[email protected]' (Bushido), '[email protected]' (Dev) or 'support@<your_hosting_platform>' (Multi-sites)
      config.mailer_sender = 'support'
    end unless Locomotive.engine? || Rails.env.test?

person hebe    schedule 23.05.2011    source источник
comment
Можете ли вы вставить содержимое файла config/initializers/locomotive.rb   -  person dexter    schedule 23.05.2011
comment
Снова обновил мой ответ .. не смог ввести команды в разделе комментариев :)   -  person dexter    schedule 23.05.2011


Ответы (2)


Предупреждение Jammit не является проблемой в вашем случае. Если вы отключите сжатие ресурсов во время выполнения, это предупреждение должно исчезнуть.

Я думаю, что есть проблема с вашими параметрами подключения к MongoDB. Либо вы не установили надстройку MongoDB, либо параметры подключения неверны.

По умолчанию переменные среды heroku, которые вы указали в locomotive.rb, не определены. Либо укажите имя пользователя/пароль напрямую, либо внутри папки rails, используйте следующие команды

heroku config:add HEROKU_LOGIN=<your_heroku_login>
heroku config:add HEROKU_PASSWORD=<your_heroku_password>

чтобы добавить эти переменные env..

person dexter    schedule 23.05.2011
comment
Я проверил, установил ли я надстройку mongohq, но она уже была установлена - person hebe; 23.05.2011
comment
Я только что узнал, что в mongoid.yml uri: ‹%= ENV['MONGOHQ_URL'] %› не был раскомментирован. Поменял, посмотрим. - person hebe; 23.05.2011
comment
Кроме того, если вы используете mongomapper, проверьте также код инициализатора. - person dexter; 23.05.2011
comment
Во всяком случае. Тем не менее получить сообщение об ошибке. Как отмечалось в моем обновленном вопросе выше, в журналах отображается следующая ошибка: /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb:48:in `возврат!': 401 Неавторизованный (RestClient::Request::Unauthorized) - person hebe; 23.05.2011
comment
Я проверяю это, моя CMS Locomotive работает с mongoid вместо mongomapper: Теперь наша цель — портировать наш прототип на Rails 3 и перейти с mongomapper на mongoid. (источник: README.textile на github.com/locomotivecms/engine) (у меня также есть файл mongoid. yml в приложении) - person hebe; 23.05.2011
comment
Пожалуйста, проверьте, правильно ли вы указали учетные данные heroku в config/initializers/locomotive.rb. - person dexter; 23.05.2011
comment
Настройки: config.heroku = { :login =› ENV['HEROKU_LOGIN'], :password =› ENV['HEROKU_PASSWORD'] } (см. полный рассматриваемый файл locomotive.rb, «обновление 2») - person hebe; 23.05.2011
comment
Теперь это работает. Подводя итог, необходимо изменить следующие моменты 1. Мне нужно раскомментировать конфиг heroku в mongoid.yml: mongoid.yml, uri: ‹%= ENV['MONGOHQ_URL'] %› 2. Я обнаружил, что файлы yml не не принимает одинарные кавычки для переменных/констант, мне нужно было установить учетные данные heroku между двойными кавычками: до: config.heroku = { :login =› ENV['HEROKU_LOGIN'], :password =› ENV['HEROKU_PASSWORD'] } после: config.heroku = { :login =› ENV[HEROKU_LOGIN], :password =› ENV[HEROKU_PASSWORD] } Спасибо всем за поддержку! - person hebe; 23.05.2011

Насколько я знаю, вы должны использовать ruby ​​1.8.7 или 1.9.2, чтобы локомотив работал.

Вы обновили свой рубиновый драгоценный камень до thoe?

2011-05-23T12:03:01+00:00 app[web.1]: /app/.bundle/gems/ruby/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb:48:in `return!': 401 Unauthorized (RestClient::Request::Unauthorized)

Если нет, попробуем Rvm: https://rvm.io

И переустановите настройки Locomotive, и тогда все должно заработать!

Если вам нужна дополнительная информация, обратитесь к первому руководству по установке Rail: http://ruby.railstutorial.org/

person Shai Key Fu    schedule 09.06.2011