前提・実現したいこと
Railsで作成したアプリケーションをCapistranoでの自動デプロイ完了後、本番環境で表示させたい
アプリケーションが本番環境にデプロイ後、表示されません
以下のようなエラーが表示されてしまいます。
###開発環境
mac os catalina 10.15.3
Rails 5.2.4.2
Mysql 14.14 Distrib 5.6.47, for osx10.14 (x86_64) using EditLine wrapper
発生している問題・エラーメッセージ
We're sorry, but something went wrong. If you are the application owner check the logs for more information.
該当のソースコード
Capfile
1require "capistrano/setup" 2require "capistrano/deploy" 3require 'capistrano/rbenv' 4require 'capistrano/bundler' 5require 'capistrano/rails/assets' 6require 'capistrano/rails/migrations' 7require 'capistrano3/unicorn' 8 9# Load custom tasks from `lib/capistrano/tasks` if you have any defined 10Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } 11
unicornrb
1app_path = File.expand_path('../../../', __FILE__) 2 3worker_processes 1 4 5working_directory "#{app_path}/current" 6 7listen "#{app_path}/shared/tmp/sockets/unicorn.sock" 8pid "#{app_path}/shared/tmp/pids/unicorn.pid" 9stderr_path "#{app_path}/shared/log/unicorn.stderr.log" 10stdout_path "#{app_path}/shared/log/unicorn.stdout.log" 11 12timeout 60 13 14preload_app true 15GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true 16 17check_client_connection false 18 19run_once = true 20 21before_fork do |server, worker| 22 defined?(ActiveRecord::Base) && 23 ActiveRecord::Base.connection.disconnect! 24 25 if run_once 26 run_once = false # prevent from firing again 27 end 28 29 old_pid = "#{server.config[:pid]}.oldbin" 30 if File.exist?(old_pid) && server.pid != old_pid 31 begin 32 sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU 33 Process.kill(sig, File.read(old_pid).to_i) 34 rescue Errno::ENOENT, Errno::ESRCH => e 35 logger.error e 36 end 37 end 38end 39 40after_fork do |_server, _worker| 41 defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection 42end
試したこと
一度、同じように本番環境でアプリケーションが表示されなかったので(その際には上記のエラー文は表示されていない)
以下の記事を参考に
https://genkichi.hateblo.jp/entry/2019/03/13/000039
nginxの再起動
MySQLの再起動
unicornの再起動を行いました。
一度目は表示されていたのですが、二度目のデプロイから
unicorn再起動のコマンド
$ cd /var/www/アプリケーション名/current $ bundle exec unicorn -c /var/www/アプリケーション名/current/config/unicorn.rb -E production -D
を実行すると
master failed to start, check stderr log for details
が表示されてしまいました。
$ cat log/unicorn.stderr.log
にてログを確認すると以下の二つのエラーが表示されていました
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error::ConnectionError)
mysqlに繋がっていないようだったので、mysqlの再起動やsocketの作成を行いましたが、エラーログに変化はありませんでした。
https://qiita.com/fujitora/items/d341c52706d1954cae28
bundler: failed to load command: unicorn_rails (/home/ec2-user/.rbenv/versions/2.5.1/bin/unicorn_rails) ArgumentError: Already running on PID:9945
こちらに対しては以下の記事を参考にUnicornの再起動を行いましたが、エラーログに変化はありませんでした。
https://qiita.com/President_Taka/items/e7d3c79154a817625b95
どなたかご教授いただけましたら幸いです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー