##環境
herokuにデプロイしていたアプリをAWS ec2に移行しています。デプロイにはcapistranoを使っています
Amazon Linux 2
RDS
ruby 2.7.1p83
Rails 6.0.3.4
nginx 1.18.0
puma 4.3.7
mysql Ver 8.0.22 for Linux on x86_64 (MySQL Community Server - GPL)
capistrano 3.14.1
##やったこと
こちらの記事に沿って作業をしたのですが、全体的に理解が薄く、てこずっています。
ブラウザからURLを打ち込んでアクセスすることはできるようになったのですが、Bootstrapが反映されておらずレイアウトが崩れてしまっています。
sshでec2に入り、/var/www/アプリ名/current/public
をみると、開発環境のapp/assets/imagesとstylesheets
のファイルは確認できたので、コンパイルは成功しているようです。nginxとpumaのエラーログを見ても問題の原因が分からず立ち往生しています。
お力をお貸しください。
##参考
解決のため参考になりそうなファイルをいくつかあげます。
/etc/nginx/cof.d/アプリ名.conf
upstream puma_アプリ名.conf { server unix:/var/www/アプリ名/shared/tmp/sockets/puma.sock fail_timeout=0; } server { listen 80; server_name localhost アプリ名.local; root /var/www/アプリ名/current/public; try_files $uri/index.html $uri @puma_アプリ名.conf; client_max_body_size 4G; keepalive_timeout 10; error_page 500 502 504 /500.html; error_page 503 @503; location @puma_アプリ名.conf { proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Forwarded-Proto https; proxy_pass http://puma_アプリ名.conf; # limit_req zone=one; access_log /var/www/アプリ名/shared/log/nginx.access.log; error_log /var/www/アプリ名/shared/log/nginx.error.log; } location ^~ /assets/ { root /var/www/アプリ名/current/public; gzip_static on; expires max; add_header Cache-Control public; } location = /50x.html { root html; } location = /404.html { root html; } location @503 { error_page 405 = /system/maintenance.html; if (-f $document_root/system/maintenance.html) { rewrite ^(.*)$ /system/maintenance.html break; } rewrite ^(.*)$ /503.html break; } if ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){ return 405; } if (-f $document_root/system/maintenance.html) { return 503; } }
Capfile
1# Load DSL and set up stages 2require "capistrano/setup" 3 4# Include default deployment tasks 5require "capistrano/deploy" 6 7# Load the SCM plugin appropriate to your project: 8# 9# require "capistrano/scm/hg" 10# install_plugin Capistrano::SCM::Hg 11# or 12# require "capistrano/scm/svn" 13# install_plugin Capistrano::SCM::Svn 14# or 15require "capistrano/scm/git" 16install_plugin Capistrano::SCM::Git 17 18# Include tasks from other gems included in your Gemfile 19# 20# For documentation on these, see for example: 21# 22# https://github.com/capistrano/rvm 23# https://github.com/capistrano/rbenv 24# https://github.com/capistrano/chruby 25# https://github.com/capistrano/bundler 26# https://github.com/capistrano/rails 27# https://github.com/capistrano/passenger 28 29 30require 'capistrano/rbenv' 31require 'capistrano/bundler' 32require 'capistrano/rails/assets' 33require 'capistrano/rails/migrations' 34require 'capistrano/puma' 35install_plugin Capistrano::Puma 36install_plugin Capistrano::Puma::Nginx 37 38# Load custom tasks from `lib/capistrano/tasks` if you have any defined 39Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } 40 41
/var/www/アプリ名/current/config/deploy.rb
# config valid for current version and patch releases of Capistrano lock "~> 3.14.1" set :application, "アプリ名" set :repo_url, "githubのURI" set :rbenv_ruby, File.read('.ruby-version').strip # Nginxの設定ファイル名と置き場所を修正 set :nginx_config_name, "#{fetch(:application)}.conf" set :nginx_sites_enabled_path, "/etc/nginx/conf.d" append :linked_files, "config/master.key" append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "node_modules" # ***** 以上を追加 ***** # Default branch is :master # ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp # Default deploy_to directory is /var/www/my_app_name # set :deploy_to, "/var/www/my_app_name" # Default value for :format is :airbrussh. # set :format, :airbrussh # You can configure the Airbrussh format using :format_options. # These are the defaults. # set :format_options, command_output: true, log_file: "log/capistrano.log", color: :auto, truncate: :auto # Default value for :pty is false # set :pty, true # Default value for :linked_files is [] # append :linked_files, "config/database.yml" # Default value for linked_dirs is [] # append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/system" # Default value for default_env is {} # set :default_env, { path: "/opt/ruby/bin:$PATH" } # Default value for local_user is ENV['USER'] # set :local_user, -> { `git config user.name`.chomp } # Default value for keep_releases is 5 # set :keep_releases, 5 # Uncomment the following to require manually verifying the host key before first deploy. # set :ssh_options, verify_host_key: :secure
どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。