AWS로 디버깅 시도(~가상 서버로 디버깅하는 4)
13. EC2에서 데이터베이스 설정
먼저 PostgreSQL을 설치합니다.
$ sudo su -
$ yum -y install postgresql94 postgresql94-server postgresql94-devel postgresql94-contrib postgresql94-docs
$ /etc/init.d/postgresql94 initdb
[起動]
$ /etc/init.d/postgresql94 start
구성 파일을 편집합니다.$ vi /var/lib/pgsql94/data/postgresql.conf
세 번째 이야기,listenaddresses의 주석(처음 # 삭제)을 해제하고 설정을 "localhost"에서 "*"로 편집하십시오.
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
인증 설정 편집$ vi /var/lib/pgsql94/data/pg_hba.conf
이 문서의 밑부분에 다음과 같은 내용을 보충한다.local all all trust
host all all 0.0.0.0/0 md5
또한 이 문서의 아래 부분은 다음과 같이 논평할 것이다# "local" is for Unix domain socket connections only
# local all all peer ←コメント化する
# IPv4 local connections:
# host all all 127.0.0.1/32 ident ←コメント化する
# IPv6 local connections:
# host all all ::1/128 ident ←コメント化する
편집이 끝난 후 다시 시작합니다.$/etc/init.d/postgresql94 restart
그리고 Postgres라는 사용자 이름으로 PostgreSQL에 연결합니다.
$ psql -U postgres
다음은 응용 프로그램의 config/database입니다.youl에 적힌 제품 설정의usename, 데이터베이스 이름 로그인 캐릭터와 데이터베이스를 사용합니다.postgres=# CREATE ROLE "ロール名" WITH SUPERUSER LOGIN;
postgres=# CREATE DATABASE "データベース名";
作業が終了したら、PostgreSQLとの接続を解除
postgres=# \q
마지막으로 PostgreSQL을 시작해도 OK.14. Nginx(엔진 ex) 웹 서버, Uniccorn(유니콘) 응용 서버의 환경 정비
Nginx 설치
EC2에서 루트 사용자로 시작하여 Nginx 설치
$ sudo su -
$ yum -y install nginx
$ chkconfig nginx on
다음 명령으로 Nginx 시작$ /etc/init.d/nginx start
그러면 EC2의 IP 주소를 브라우저 주소에 기술하면 Nginx 페이지가 표시됩니다.15. 설계 도구(Capistrano)를 사용한 설계
공개 키를 제작하여 Giithub에 설치
$ sudo su app # app userに切り替わっていない場合のみ実行
$ cd # ホームディレクトリにいない場合のみ実行
$ ssh-keygen -t rsa # 公開鍵秘密鍵のペアを作成
入力画面が出てきたら全てエンターでOK。
$ cat ~/.ssh/id_rsa.pub
Giithub의 setting에서 복사된 공개 키를 설정하면 EC2와 Giithub 사이에 SSH 연결을 할 수 있습니다.프로그램 공개 디렉터리 만들기
EC2에서 공개적으로 사용할 디렉터리를 새로 만듭니다.
이번에는 www를 공개목록의 이름으로 제작했습니다.
$ sudo mkdir wwwを管理者権限で実行しwwwフォルダを作り、
$ sudo chown -R app:app wwwでapp userに権限を与え、
$ cd /var/wwwでディレクトリに移動するながれになります
$ cd /var
$ sudo mkdir www
$ sudo chown -R app:app www
$ cd /var/www
Gemfile 편집
gem 'dotenv-rails' # 開発環境で環境変数を操作するのに必要
gem 'unicorn' # アプリケーションサーバのunicorn
gem 'mini_racer', platforms: :ruby # デプロイ時に必要
group :development, :test do
gem 'capistrano', '3.6.0' # capistranoのツール一式
gem 'capistrano-bundler'
gem 'capistrano-rails'
gem 'capistrano-rbenv'
gem 'capistrano3-unicorn'
# 以下省略
end
# 以下省略
Capfile 제작, 편집
$ bundle exec cap install でファイル作成
Capfile에 다음 내용 추가require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'capistrano3/unicorn'
대상 서버 정보 및 액세스 키 정보 설정
/config/deploy/production.rb
server 'EC2のIPアドレス', user: 'app', roles: %w{app db web}
set :ssh_options, keys: 'ローカルの秘密鍵へのpath'
config/deploy.rb를 열면 모두 덮어쓰기# config valid only for current version of Capistrano
lock '3.6.0'
# デプロイするアプリケーション名
set :application, 'achieve'
# cloneするgitのレポジトリ
# (xxxxxxxx:ユーザ名、yyyyyyyy:アプリケーション名)
set :repo_url, 'https://github.com/xxxxxxxxx/yyyyyyyyy'
# deployするブランチ。デフォルトはmasterなのでなくても可。
set :branch, ENV['BRANCH'] || 'master'
# deploy先のディレクトリ。
set :deploy_to, '/var/www/achieve'
# シンボリックリンクをはるフォルダ・ファイル
set :linked_files, %w{.env config/secrets.yml}
set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets public/uploads}
# 保持するバージョンの個数(※後述)
set :keep_releases, 5
# Rubyのバージョン
set :rbenv_ruby, '2.5.1'
set :rbenv_type, :system
# 出力するログのレベル。エラーログを詳細に見たい場合は :debug に設定する。
# 本番環境用のものであれば、 :info程度が普通。
# ただし挙動をしっかり確認したいのであれば :debug に設定する。
set :log_level, :info
namespace :deploy do
desc 'Restart application'
task :restart do
invoke 'unicorn:restart'
end
desc 'Create database'
task :db_create do
on roles(:db) do |host|
with rails_env: fetch(:rails_env) do
within current_path do
execute :bundle, :exec, :rake, 'db:create'
end
end
end
end
desc 'Run seed'
task :seed do
on roles(:app) do
with rails_env: fetch(:rails_env) do
within current_path do
execute :bundle, :exec, :rake, 'db:seed'
end
end
end
end
after :publishing, :restart
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
end
end
end
..계속하다
Reference
이 문제에 관하여(AWS로 디버깅 시도(~가상 서버로 디버깅하는 4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Decosan/items/a0328e33d037cd008a41텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)