質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1027閲覧

本番環境でRailsを起動させる際のエラー

show_kanazawa

総合スコア12

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/04/16 15:28

編集2020/04/17 04:42

###エラー内容
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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

エラーログにあるように
var/www/tokyotatamistudio/config/initializers/mail.rb:7:in `<top (required)>'
を見に行きHOGEHOGE=ENV['hogegoge']の書き方が誤っていたため左記のように書き換えたら進める事が出来ました。
ローカルでは動くのに本番では書き方が少し違うと動かないこともあるのだといい勉強になりました。

投稿2020/04/17 06:50

show_kanazawa

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問