###エラー内容
NoMethodError: undefined method `ENV' for main:Object
###実装している事
AWSのEC2で作成したサーバに対してRuby on Railsが動くように環境構築し、
EC2のサーバにアプリのコードをクローン → bundlerのインストールやSwap領域の拡張を行いました。
その後secret_key_baseを作成しvimを使いEC2サーバの/etc/environmentファイルに記載をしました。
DATABASE_PASSWORD=MySQLのrootユーザーのパスワード
SECRET_KEY_BASE=先程コピーしたsecret_key_base
環境変数を反映させるために、一度本番環境をログアウトしたあと再度SSHし本番環境にログインし、環境変数が本当に適用されているか確認しました。
env | grep SECRET_KEY_BASE コマンドと、 env | grep DATABASE_PASSWORD コマンドで確認したところ正しく設定されているようでしたのでユニコーンを起動させてみたところエラーが出てきたのでログを確認すると上記のメッセージが表示されておりました。
##試した事
database.ymlの本番環境の設定を編集し,rails db:create RAILS_ENV=productionを行いましたが、上記と同じエラーが出ました。
config/database.yml(ローカル)
production: <<: *default database: アプリケーション名 username: root password: <%= ENV['DATABASE_PASSWORD'] %> socket: /var/lib/mysql/mysql.sock
また、unicornをkillしても同じ結果となりました。
おそらく環境変数の設定の際にうまくできていない事が原因かと思いますが、解決策が見つからない状況です。
SECRET_KEY_BASEを再度作成してもいいものなのでしょうか。
アドバイスいただけますと幸いです。
よろしくお願いいたします。
---追記
rails db:create RAILS_ENV=production をした時のエラー文がこちらになります。
rails aborted! NoMethodError: undefined method `ENV' for main:Object /var/www/tokyotatamistudio/config/initializers/mail.rb:7:in `<top (required)>' /var/www/tokyotatamistudio/config/environment.rb:5:in `<top (required)>' /var/www/tokyotatamistudio/bin/rails:9:in `<top (required)>' /var/www/tokyotatamistudio/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:create => db:load_config => environment (See full trace by running task with --trace)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。