前提・実現したいこと
RailsアプリでUnicornを動かし、ブラウザでアプリを起動したいです。様々トライしましたが、手詰まりになってしました。何かわかる方いらっしゃいましたら、ご教授いただけたら幸いです。
発生している問題・エラーメッセージ
Unicornサービスを起動するために、以下のコマンドを実行しました。スタートに失敗したので、ログで詳細を見てくれとのことでしたので確認しました。
$ unicorn_rails -c /var/www/rails/Myapp/config/unicorn.conf.rb -D -E production master failed to start, check stderr log for details
すると、2つのエラーが確認できました。
1つ目のログエラー
/home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/message_encryptor.rb:193:in `key=': key must be 16 bytes (ArgumentError)
2つ目のログエラー
/home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated unicorn 5.5.3, but your Gemfile requires unicorn 5.4.1. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
Gemfileが要求するunicorn 5.4.1に対して、あなたの環境でアクティブなのはUnicorn5.5.3だと記載があります。
他のエラー
bundler: failed to load command: unicorn_rails (/home/testuser/.rbenv/versions/2.6.3/bin/unicorn_rails) ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/message_encryptor.rb:206:in `rescue in _decrypt' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/message_encryptor.rb:183:in `_decrypt' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/encrypted_file.rb:80:in `decrypt' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/encrypted_file.rb:43:in `read' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/encrypted_configuration.rb:21:in `read' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/encrypted_configuration.rb:33:in `config' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/encrypted_configuration.rb:38:in `options' /home/testuser/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/core_ext/module/delegation.rb:297:in `method_missing' (erb):12:in `<main>'
試したこと
1つ目のログのエラー関しては、「アセットプリコンパイル中のRails 5.2.2では、エラーキーは16バイトでなければなりません」を参考に、config/master.keyとcredentials.yml.encを一旦リネイムし、EDITOR="vi" bin/rails credentials:editを実行していますが、master failed to start.....
は依然出たままです。key must be 16 bytes
と記載がありますが、この条件を満たすキーは発行できていないのが原因なのでしょうか。
2つ目のログのエラーに関しては、bundle execを付与して実行しましたが、結果変わらずです。類似の問題がQiitaに投稿されており、参考にしました。Gemfileでバージョンの指定をしていなかったUnicronに対して、5.4.1のバージョンを指定しました。ただし、最初に検出されたmaster failed to start.....
は依然出たままです。
1つ目にも関連しますが、message_encryptor.rb:203-207行目を引用です。
message = Messages::Metadata.verify(decrypted_data, purpose) @serializer.load(message) if message rescue OpenSSLCipherError, TypeError, ArgumentError raise InvalidMessage end
補足情報(FW/ツールのバージョンなど)
- Rials 6.0.2.1
- Ruby 2.6.3
- unicorn 5.4.1
- OS : Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type
Amazon Linux AMI は、AWS がサポートする EBS-backed イメージです。デフォルトのイメージには、AWS コマンドラインツール、Python、Ruby、Perl、および Java が含まれます。レポジトリには、Docker、PHP、MySQL、PostgreSQL、およびその他のパッケージが含まれます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。