🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
unicorn

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

Ruby

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

Ruby on Rails 6

Ruby on Rails 6は、オープンソースの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

解決済

2回答

3789閲覧

AWS unicornが起動できない。master failed to start, check stderr log for detailsのエラー

a-ichi

総合スコア16

unicorn

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

Ruby

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

Ruby on Rails 6

Ruby on Rails 6は、オープンソースの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クリップ

投稿2021/01/02 11:42

前提・実現したいこと

初学者です。
初めてrailsで開発したアプリをAWSのEC2インスタンスにgithubからcloneし、unicornを起動しようとしたのですが、エラーで前に進めないのを解消したいです。

環境

ruby '2.6.5'
rails '6.0.0'
AWS EC2 AmazonLinuxAMI t2micro

発生している問題・エラーメッセージ

実行したコマンド

RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D
bundle exec unicorn_rails -c config/unicorn.rb -E production -D

エラーコード

master failed to start, check stderr log for details

該当のソースコード less log/unicorn.stderr.log

I, [2021-01-01T16:50:13.852352 #25162] INFO -- : Refreshing Gem list I, [2021-01-01T16:50:15.793332 #25162] INFO -- : listening on addr=0.0.0.0:3000 fd=9 E, [2021-01-01T16:50:15.793758 #25162] ERROR -- : Can't connect to local MySQL s erver through socket '/tmp/mysql.sock' (2) (Mysql2::Error::ConnectionError) /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/m ysql2/client.rb:90:in `connect' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/m ysql2/client.rb:90:in `initialize' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3 .4/lib/active_record/connection_adapters/mysql2_adapter.rb:24:in `new' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3 .4/lib/active_record/connection_adapters/mysql2_adapter.rb:24:in `mysql2_connect ion' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3 .4/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new _connection' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3 .4/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `che ckout_new_connection' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3 .4/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try _to_checkout_new_connection' :

config/unicorn.rb

ruby

1 2app_path = File.expand_path('../../', __FILE__) 3 4 5worker_processes 1 6 7 8working_directory app_path 9 10 11pid "#{app_path}/tmp/pids/unicorn.pid" 12 13 14listen 3000 15 16 17stderr_path "#{app_path}/log/unicorn.stderr.log" 18 19 20stdout_path "#{app_path}/log/unicorn.stdout.log" 21 22 23timeout 60 24 25 26 27preload_app true 28GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true 29 30check_client_connection false 31 32run_once = true 33 34before_fork do |server, worker| 35 defined?(ActiveRecord::Base) && 36 ActiveRecord::Base.connection.disconnect! 37 38 if run_once 39 run_once = false # prevent from firing again 40 end 41 42 old_pid = "#{server.config[:pid]}.oldbin" 43 if File.exist?(old_pid) && server.pid != old_pid 44 begin 45 sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU 46 Process.kill(sig, File.read(old_pid).to_i) 47 rescue Errno::ENOENT, Errno::ESRCH => e 48 logger.error e 49 end 50 end 51end 52 53after_fork do |_server, _worker| 54 defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection 55end

gemfile(一部抜粋)

group :production do gem 'unicorn', '5.4.1' end

ps aux | grep unicorn
を入力してもunicorn_rails master が出てこないです。
killもできないです。

足りないコードがあれば仰って頂けたらと思います。

なかなかデプロイ出来なくて苦戦しております。
何卒宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

MySQLへの接続でエラーになってます。とりあえず下記を確認してみてください。

  • MySQL Serverが起動しているかどうか
    sudo systemctl status mysqldで確認できます。(Amazon Linux2を想定。1は非推奨なので説明しません)
  • MySQLのソケットファイルのパスが合っているか

'/tmp/mysql.sock'を指定しているようですが、そもそもMySQLの設定ファイルでそこにソケットファイルを置く設定にしているのか
個人的にはわざわざ/tmpにおいていることに違和感があるのですが、これはローカルでの設定ではないでしょうか。

  • 設定しているユーザ/パスワードでMySQL Serverに接続できるか。

投稿2021/01/02 14:04

yu_1985

総合スコア7588

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

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

a-ichi

2021/01/02 15:58

yu_1985様 ご回答ありがとうございます。 仰るとおり、mysqlのサーバーが動いておりませんでした。 sudo systemctl start mariadbでサーバーを起動しましたら、unicornのエラーは出ませんでした。 ありがとうございます。 ただ、railsは起動しましたが、http://<Elastic IP>:3000/ にアクセスしても、We're sorry, but something went wrong.のエラーが出ました。 こちらは何が考えられますでしょうか? ログを見るとこのようになっています。 もし宜しければ、こちらもご確認頂けると嬉しいです。 宜しくお願い致します。 [8848dd96-c213-4d5c-9889-7553d20f153f] 12: = render 'layouts/notifications' [8848dd96-c213-4d5c-9889-7553d20f153f] [8848dd96-c213-4d5c-9889-7553d20f153f] app/views/layouts/application.html.haml:9 D, [2021-01-02T15:31:34.006084 #3672] DEBUG -- : (6.6ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483 D, [2021-01-02T15:33:12.146652 #3718] DEBUG -- : (0.3ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483 I, [2021-01-02T15:33:45.141781 #3726] INFO -- : [067a90ac-1b96-440a-8cbe-344bf2ad132f] Started GET "/" for 106.128.186.157 at 2021-01-02 15:33:45 +0000 I, [2021-01-02T15:33:45.144016 #3726] INFO -- : [067a90ac-1b96-440a-8cbe-344bf2ad132f] Processing by EventsController#index as HTML I, [2021-01-02T15:33:45.154194 #3726] INFO -- : [067a90ac-1b96-440a-8cbe-344bf2ad132f] Rendering events/index.html.haml within layouts/application I, [2021-01-02T15:33:45.165755 #3726] INFO -- : [067a90ac-1b96-440a-8cbe-344bf2ad132f] Rendered events/index.html.haml within layouts/application (Duration: 11.4ms | Allocations: 7502) I, [2021-01-02T15:33:45.169425 #3726] INFO -- : [067a90ac-1b96-440a-8cbe-344bf2ad132f] Completed 500 Internal Server Error in 25ms (Allocations: 11887) F, [2021-01-02T15:33:45.170345 #3726] FATAL -- : [067a90ac-1b96-440a-8cbe-344bf2ad132f] [067a90ac-1b96-440a-8cbe-344bf2ad132f] ActionView::Template::Error (Webpacker can't find application in /var/www/CustomerCalender/public/packs/manifest.json. Possible causes: 1. You want to set webpacker.yml value of compile to true for your environment unless you are using the `webpack -w` or the webpack-dev-server. 2. webpack has not yet re-run to reflect updates. 3. You have misconfigured Webpacker's config/webpacker.yml file. 4. Your webpack configuration is not creating a manifest. Your manifest contains: { } ): [067a90ac-1b96-440a-8cbe-344bf2ad132f] 6: = csrf_meta_tags [067a90ac-1b96-440a-8cbe-344bf2ad132f] 7: = csp_meta_tag [067a90ac-1b96-440a-8cbe-344bf2ad132f] 8: = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' [067a90ac-1b96-440a-8cbe-344bf2ad132f] 9: = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' [067a90ac-1b96-440a-8cbe-344bf2ad132f] 10: [067a90ac-1b96-440a-8cbe-344bf2ad132f] 11: %body [067a90ac-1b96-440a-8cbe-344bf2ad132f] 12: = render 'layouts/notifications' [067a90ac-1b96-440a-8cbe-344bf2ad132f] [067a90ac-1b96-440a-8cbe-344bf2ad132f] app/views/layouts/application.html.haml:9 [ec2-user@ip-172-31-47-224 log]$
yu_1985

2021/01/02 18:15

起動した上でアプリのエラーが出てるので、この質問の現象とは別問題です。 なので頑張ってデバッグしてください。 親切にもログにエラーの内容とその解決策になり得るものが書いてあるのでまずはそれを一つずつあたってみてください。
a-ichi

2021/01/03 00:53

yu_1985様 エラーログ読み解いてみます。 ありがとうございました。
guest

0

ps aux | grep unicorn

を入力してもunicorn_rails master が出てこないです。

ということは、unicornの起動がしっかりできていないですね。

less log/unicorn.stderr.log

の一番下に何が出ているか教えていただけますか?

一番下に出ているものが、最新のログです。今提示いただいているものは上なので、最新のものではなさそうです。

投稿2021/01/02 12:30

educ_gt

総合スコア282

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

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

a-ichi

2021/01/02 13:04

educ_gt様 ご回答ありがとうございます。 bundler/cli/exec.rb:28:in `run' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>' /home/ec2-user/.rbenv/versions/2.6.5/bin/bundle:23:in `load' /home/ec2-user/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>' この辺りが一番下だと思います。 宜しくお願い致します。
educ_gt

2021/01/02 13:09

なんだかめぼしいものはなさそうですね。。 Can't connect to local MySQL s erver through socket '/tmp/mysql.sock' (2) (Mysql2::Error::ConnectionError) これは、mysqlが起動していない時に出るエラーなので、一度mysqlの起動を確かめてみるといかがでしょうか? また、lessコマンドで展開した logをもう少し全文いただけますと、なにかわかるかもしれないです。今下をみていただいたのですが、もう少し上になにか出ていそうな気がします。
a-ichi

2021/01/02 13:41

educ_gt様 これで全文だと思います。 さっきと内容が変わっているような気がします。 ご確認お願い致します。 mysql見てみます。 [ec2-user@ip-172-31-47-224 CustomerCalender]$ less log/unicorn.stderr.log bundler/cli/exec.rb:28:in `run' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors' /home/ec2-user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>' /home/ec2-user/.rbenv/versions/2.6.5/bin/bundle:23:in `load' /home/ec2-user/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>
educ_gt

2021/01/02 13:45

ありがとうございます。 ここにもめぼしいものはないので、もしかしたらmysqlのエラーが一番根っこかもしれないですね。。
a-ichi

2021/01/02 13:52

初歩的な質問で申し訳ありませんが、mysqlは何を確認したらいいのでしょうか?
educ_gt

2021/01/02 14:01

mysqlのstatusを確認するコマンドがあるはずなので、それで本番環境のmysqlの状態を確かめてみましょう!
a-ichi

2021/01/02 16:00

educ_gt様 ご回答ありがとうございます。 仰るとおり、mysqlが動いておりませんでした。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問