自作railsアプリをデプロイする 番外編 Route 53でドメインを設定する
上の記事を通して、以下のようなインフラを作成しました。↓
EC2の中身はこんな感じです。↓
ここまでの設定ですと、IPアドレスを入力することでしかアプリを表示することができません。
なので今回は「Route53」を使って、独自のドメインでWebサーバーに接続し、アプリを表示することができるようにしていきます。
Route 53を軽く理解する
作成するものを図で理解する
全体的な設置図としてはこのような感じです。↓
動きとしては以下のような仕組みになります。↓
①クライアントからドメインを入力すると、フルリゾルバを介してからRoute 53にそのドメインに紐づくIPアドレスがあるかを問い合わせます。
②もしRoute 53にクライアント側で入力されたドメインが登録されていれば、それに紐づくIPアドレスをクライアントに送り返します。
実際にRoute 53を使ってドメインを設定する
※前提として、、、
- お名前.comのドメイン管理画面にログインできること
上記を前提として書いていきます。
ホストゾーンの作成
まずはRoute53のダッシュボードを開いて、「ホストゾーン」を選択して、「ホストゾーンの作成」をクリック。
こちらの画面から取得した「ドメイン名」を入力します。
タイプは、クライアントから通信できるようにしたいので「パブリックホストゾーン」にします。
「作成」を押すとホストゾーンが作成できます。
するとホストゾーンには、「NS」タイプのレコード(ネームサーバー)と「SOA」タイプのレコード(ゾーン)があることが確認できます。
しかしこのままでは、ドメインに紐付いたIPアドレスのレコード(Aレコードといいます)がないため、それを作成する必要があります。
Aレコードを作成する前に、、、
お名前.comで取得したドメインはデフォルトだとお名前.comのネームサーバーに紐付いています。↓
#EC2インスタンスにログインして、取得したドメインのネームサーバーを確認する $ dig myapp.com NS +short dns2.onamae.com ←お名前.comのネームサーバー dns1.onamae.com ←お名前.comのネームサーバー
このままだと取得したドメインで問い合わせても、Route53にドメインの管理情報(IPアドレスなど)があることにはならず、お名前.comに管理情報があるという設定になっています。
そのためAレコードを作成する前に、お名前.comにログインしてドメイン管理画面で、その設定を変更する必要があります。
お名前.comでドメインの設定
お名前.comにログインして「ドメインの設定」をクリック。
「ネームサーバーの変更」を選択します。
取得したドメインにチェックを入れて、下の方にある「他のネームサーバーを利用」を選択すると以下のような入力画面がでます。↓
ここにRoute53で先ほど作成したホストゾーンの「NSレコード」入力することで、設定が完了します。
以下の表示されているNSレコードの情報(ns~から始まるやつ)を全てコピペしましょう。↓
できたら「確認画面」を選択して「設定する」
これで設定は完了です。
確認もコマンドで一応します。 $ dig myapp.com NS +short ns-786.awsdns-34.net ns-1578.awsdns-05.co.uk ns-1041.awsdns-02.org ns-306.awsdns-38.com
自作railsアプリをデプロイする 番外編 本番環境の画像投稿 S3を作成する
上の記事を通して、以下のようなインフラを作成しました。↓
EC2の中身はこんな感じです。↓
今回はRailsアプリケーションから画像を投稿するためのストレージをAWSの「S3」に設定していきます。
S3を軽く理解する
S3とは「Simple Storage Service」の略で、安価で耐久性に優れたクラウドストレージサービスです。
用語
オブジェクト
S3に保管するファイルのこと。
バケット
S3上に存在するフォルダのようなもの。
バケットポリシー
バケットへのアクセス制限等のセキュリティポリシーです。バケット毎に自由に設定することができます。
マルチパートアップロード
大きいファイルは複数に分割してアップロードできて、アップロード後に統合することができる機能の名称になります。
WEBサイト機能
WEBサーバとして公開することができます。
バージョニング
一度削除したものを復元できる機能の名称になります。
ユースケース
①コンテンツ保存&配信
画像等の静的コンテンツの保存先及び配信
②データ保存用のストレージ
ログ保存用やアプリケースションのストレージとして利用
③バックアップ
サーバのバックアップ、DR用にバックアップ
作成するものを図で理解する
EC2インスタンス内のRailsアプリから、作成したS3を利用して画像を保存し、インターネットから閲覧できるようにします。
ここでの「インターネットから閲覧」とは、例えば写真をS3に保存して、アプリの投稿コンテンツを表示する際に、HTMLの<img>でS3で保存した写真などをS3からとってくることです。
S3の利用方法、設定
まずバケットを作成します。
S3を操作するユーザーを作成
Rails側の設定
今回は画像投稿にCarrierwaveを使用している場合の設定を行っていきます。こちらの設定に関しては今回詳細には書きません。
railsでcarrierwaveを使って画像をアップロード、表示 - Qiita
必要なgemは以下の通り
gem 'carrierwave' gem 'fog'
uploaderファイルのstorageの部分を編集します
app/uploaders/image_uploader.rb ・ ・ storage :fog ・ ・
設定ファイルのcarrier_wave.rbに以下を追記していきます。
config/carrier_wave.rb if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { # Amazon S3用の設定 :provider => 'AWS', :region => ENV['S3_REGION'], :aws_access_key_id => ENV['S3_ACCESS_KEY'], :aws_secret_access_key => ENV['S3_SECRET_KEY'] } config.fog_directory = ENV['S3_BUCKET'] end end
ENV['xxx']とあるのは、環境変数を読み込みます。
それぞれの変数に、AWS側で設定した時に取得した「アクセスキーID」や「シークレットキー」などを設定します。
環境変数設定の例↓
$ export S3_REGION="ap-northeast-1" $ export S3_ACCESS_KEY="ユーザー作成時に取得したアクセスキーID" $ export S3_SECRET_KEY ="ユーザー作成時に取得したシークレットキー" $ export S3_BUCKET="バケット作成時に設定したバケット名" $ source ~/.bashrc
あとはCarrirwaveの基本設定ができていていれば、S3に保存ができるはずです。
自作railsアプリをデプロイする Part10 EC2インスタンス環境構築編
前回やったところから残りの設定を終わらせていきたいと思います。
前回は大まかに、インスタンスに諸々の設定をしたあとアプリのクローンを作成したところまでいきました。
今回はWebサーバーやアプリケーションサーバー、SQLなどの設定をやっていきます。
正直一番緊張する内容です。。。
- 構築する環境を理解する
- 構築するものを図で理解する
- アプリケーションサーバーの設定(Puma)
- データベースの設定
- Nginxサーバーインストールと設定
- しかし、これで起動したってわけではありませんでした。
構築する環境を理解する
今回作る環境は一言でいうと「Web3層構成」です。それらは以下の3つの層で成り立っています。
Webサーバ層
Webブラウザからのアクセス要求を処理する層を示します。必要に応じて、Webアプリケーション層へリクエストを要求します。
Webサーバから受けたリクエストをもとに、バックエンドで動作するJavaやphp、Rubyなどを実行したり、データベースへのアクセスを行ない、処理を行ないます。
データベース層
入力したデータや、アプリケーションで参照するデータを保管する役割を持ちます。
参考 ↓
アプリケーションサーバってなに?Webサーバとの違い | 構築ツールの最新情報や基礎知識 | 知る・学ぶ | Marketing Bank (マーケティングバンク)
よってそれぞれの層の役割を担うのに必要なソフトウェアをインストールしていき、それらを関連づけることで「Web3層構成」を構築していきます。
構築するものを図で理解する
EC2インスタンス内に以下の環境を構築していきます。
Webサーバ層に「Nginx」、ウェブアプリケーション層に「Puma」、データベース層には「PostgerSQL」使います。
図のアプリケーションサーバーのpumaに関しては、railsアプリケーションを動かすために必要なものです。
さらにアプリケーションサーバーには「Rack」と呼ばれるWebサーバーからのリクエストを翻訳してRailsに伝える(その逆も)という仕組みがあります。
よって以下のような流れでリクエストから処理(処理からレスポンス)の流れが実現できます。
ちなみにNginx と Puma間の情報のやりとりは、「UNIX Socket」を使います。
アプリケーションサーバーの設定(Puma)
Railsにはデフォルトでpumaが入っているので、いろいろ設定していきます。
本番環境での操作であることに注意してください。
[ryo|~]$ cd /var/www/rails/myapp
先にバンドラーを取得。
[ryo|~ myapp $ gem install bundler
Pumaとpuma_worker_killerと他のGemfileに記載されているgemをインストールしていきます。
puma_worker_killerはpumaのパフォーマンスを管理して、ケアするものと思ってください。
Gemfile ・ ・ gem 'puma', ・ ・ group :production do (省略) gem 'puma_worker_killer' end
[ryo|~ myapp $ bundle install --without development test
設定ファイルを作成します。
[ryo|~ myapp]$ touch config/puma/production.rb [ryo|~ myapp]$ touch tmp/sockets/puma.sock [ryo|~ myapp]$ touch tmp/pids/puma.pid
puma.sockとpuma.pidは空で大丈夫です。
production.rbに以下を追記↓
# config/puma/production.rb # UNIX Socketへのバインド tmp_path = "#{File.expand_path("../../..", __FILE__)}/tmp" bind "unix://#{tmp_path}/sockets/puma.sock" # スレッド数とWorker数の指定 threads 3, 3 workers 2 preload_app! # デーモン化の設定 daemonize pidfile "#{tmp_path}/pids/puma.pid" stdout_redirect "#{tmp_path}/logs/puma.stdout.log", "#{tmp_path}/logs/puma.stderr.log", true # rails restartコマンドが使えます。 plugin :tmp_restart # puma_worker_killerの設定 before_fork do PumaWorkerKiller.config do |config| # 閾値を超えた場合にkillする config.ram = 1024 # mb config.frequency = 5 * 60 # per 5minute config.percent_usage = 0.9 # 90% # 閾値を超えたかどうかに関わらず定期的にkillする config.rolling_restart_frequency = 24 * 3600 # per 1day # workerをkillしたことをログに残す config.reaper_status_logs = true end PumaWorkerKiller.start ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord) end on_worker_boot do ActiveRecord::Base.establish_connection if defined?(ActiveRecord) end
Pumaの設定は終わりです。
この時点でrails sしても動きませんでした。
理由としてはデータベースをrailsアプリと接続してなかったので、「PostgreSQL」をrailsをつなげていきます。
データベースの設定
データベース側の設定は以下の記事の通り↓
ryo10leo.hatenablog.com
まずdatabase.ymlを編集
config/database.yml ・ ・ ・ production: <<: *default adapter: postgresql database: myapp_production user: <%= ENV['RAILS_DATABASE_USERNAME'] %> password: <%= ENV['RAILS_DATABASE_PASSWORD'] %> encoding: utf8
userとパスワードは環境変数にしたのでそれぞれ設定します。
[ryo|~ myapp]$ rails db:create RAILS_ENV=production [ryo|~ myapp]$ rails db:migrate RAILS_ENV=production #seed.rbがあるなら↓ [ryo|~ myapp]$ rails db:seed RAILS_ENV=production
これで
[ryo|~ myapp]$ rails s -e production
でpumaが起動します。
Nginxサーバーインストールと設定
まずはNginxをインストール
[ryo|~ myapp]$ sudo yum install -y nginx
[ryo|~ myapp]$ systemctl enable nginx
nginxの設定ファイルを作成します。↓
[ryo|~ myapp]$ cd ~ [ryo|~ ]$ touch /etc/nginx/conf.d/myapp.conf
作成したファイルを編集します。
upstream <app_server> {
server unix:///var/www/rails/<myapp>/tmp/sockets/puma.sock;
}
server {
client_max_body_size 20M;
listen 80;
server_name #取得したElastic IPアドレス;
root /var/www/rails/<myapp>/public;
location / {
proxy_pass http://<app_server>;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_connect_timeout 30;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/rails/<myapp>/public;
}
}
<myapp>は自分のアプリファイル、<app_server>は任意の値を設定します。
server_nameには自身で取得したElastic IPアドレスを書きます。
nginxを起動します。
[ryo|~ myapp]$ sudo service nginx start
これで大まかな設定は完了です!
しかし、これで起動したってわけではありませんでした。
多分ここから人それぞれいくつかのエラーに遭遇するはずです。
自分は一つ一つ調べれば、解決できるものが多かったので落ち着いてデバックすればアプリケーションが動くようになるので、勉強だと思って頑張りましょう。
自分は以下のような内容のエラーが起こりました。↓
Rails5をproduction(本番環境)で起動する時に嵌ったこと - Qiita
Rails4+nginxでfavicon.icoが正常に表示されない問題 - プログラマーになりたい
表示はされたけどrails側のエラーでアプリが表示されない↓
【rails】本番環境でもエラー文を表示させる - Qiita
あとはインスタンス側で環境変数がうまく設定されてなかったとか、地味なことも探って行けば大丈夫です。
長かったなー
次は番外編などを書いていきたいです。
パスワード変更後にGit Pushできなくなった時の対処
問題の発端
GitHubで「パスワードを変えやがれー」と言われました。
問題
仕方なくパスワードを変えた後に、ローカルの作業で「Git Push」したときにこんなエラーが、、、↓
$ git push remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/~~~/~~~~/'
文字通り有効ではないuserまたは、パスワードなのでPushができません。
おそらくパスワードを変えたせいで、Pushしてるの誰やねん状態になっているのですね。
対処法
GitHubユーザーを再設定したらできました。
$ git config --global user.name Ryo10Leo
これでGit Pushを試みます。
git push
この後パスワードを求められるので、再設定時のパスワードを入力すれば無事処理が完了します!!!
PostgreSQLをEC2に導入する
AWSのEC2サーバー内でWeb3層構成を構築している際、データベース層には「PostgreSQL」を導入することにした。
導入するのに苦労したので、導入やユーザー、データベース作成の過程を書いていきたい。
PostgreSQLのダウンロードリスト
以下をインストールしました。
$ sudo yum list postgresql.x86_64 postgresql-contrib.x86_64 postgresql-devel.x86_64 postgresql-libs.x86_64 postgresql-server.x86_64
存在を確認します。
$ psql --version
PstgreSQLの設定や操作
データベースの初期化
$ sudo service postgresql initdb
データベース起動
$ sudo service postgresql start
起動確認します。
$ service postgresql status
systemctlコマンドでも実行できるけど、違いがわかんねぇ...
「service postgresql status」だと「Redirecting to /bin/systemctl status postgresql.service」と出るからどっちも同じ意味だよね?笑
サーバー(EC2インスタンス)起動時に、PostgreSQLも自動起動させる
$ sudo chkconfig postgresql on
以下のコマンドでもできた↓
sudo systemctl enable postgresql
結果が以下の通り(enable)なら無事自動起動の設定完了
$ systemctl list-unit-files -t service | grep postgres postgresql.service enabled
エンコードの変更
まずデフォルトのデータベースを確認します。
PostgreSQL にスーパーユーザー(postgres)で接続
$ sudo -u postgres psql
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges --------------+----------+-----------+-------------+-------------+----------------------- postgres | postgres | SQL_ASCII | C | C | template0 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | SQL_ASCII | C | C |
このままデータベースを作成するとエンコードが「SQL_ASCII」になってしまうため、アプリ側で「UTF-8」に設定していると、アプリとデータベースでうまく接続されません。
先にエンコードが「UTF-8」になるように設定します。
参考↓
PostgreSQL: template1 のエンコーディングを UTF-8 に変更する - tkrdの日記
postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1'; # DROP DATABASE template1; # CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8'; # UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
これでやっと諸々の作成作業に入れます。
ユーザーやデータベースの作成
ユーザー(パスワード付き)を作成して、そのユーザーが所有するデーターベースを作成します。
今回はアプリの本番環境で使うデータベースを作成します。
ユーザーを作成(パスワード付き)
postgres=# alter role postgres with password ‘password’; # alter role ユーザー名 with password ‘password‘;
権限を与えます。↓
postgres=# ALTER ROLE user-name WITH CREATEDB; ALTER ROLE
postgres=# \du List of roles Role name | Attributes | Member of --------------------+------------------------------------------------------------+----------- user-name | Create DB | {}
これはいるのかわからないけど。。。↓
/var/lib/pgsql93/data/pg_hba.conf # TYPE DATABASE USER ADDRESS METHOD #local all all peer ← コメントアウトか、削除 local all all md5 ← 追加
いろいろ調べた結果、今回の作業だと蛇足だったかもです。
データベース作成↓
postgres=# create database [database_name] owner [user_name];
とりあえずこれで、アプリに繋ぐ PostgreSQL側の下準備はできたと思う。
自作railsアプリをデプロイする Part9 EC2インスタンス環境構築編
前回したこと↓
自分のec2インスタンスにログインするユーザーを作成して、無事インスタンスにログインすることができました。
今回は、実際にインスタンスの環境構築を行っていこうと思います。
環境構築とは何をするのか
前回の記事の例で、「処理に必要なソフトウェアをインストールすること」と説明したのでそのままのことをやります。
アプリは「Ruby」で書かれているものなので、その言語が動く環境にしたり、サイトのアクセスに対応するために、Webサーバーが必要なので「Nginx」を導入したりなど様々です。
今回は、作成したインスタンスがRubyの実行環境になるように設定していきます。その過程で「Git」も使えるようになるので、インスタンスにアプリのクローンを作成したいと思います。こうすることで、自分のアプリのリポジトリをインスタンスが取得することになります。
今回行う環境構築を図で理解する
図の通りです。①最初はインスタンスでRuby,Git etc...が動く環境を作成します。データベースには「PostgreSQL」を使用します。
次に、②自身のGit Hubから「SSH通信」を利用して、アプリのクローンをインスタンスに作成していきたいと思います。
この辺は前回の復習もかねた作業になると思います。
実際に環境を構築を行う
Ruby環境構築
まずRubyの実行環境を構築していきます。
手が震えます。。。笑
まずEC2にログイン。
$ ssh ratio_key_rsa
必要なものをインストールしていきます。
[ryo|~]$ sudo yum install git make gcc-c++ patch openssl-devel libyaml-devel libffi-devel libicu-devel libxml2 libxslt libxml2-devel libxslt-devel zlib-devel readline-devel ImageMagick ImageMagick-devel epel-release
こんなにあんの?それぞれ何してるの?もう訳わかんない。
っとなってしまいそうですが、そんなこと意識してたら先に進まないのでこのまま進みます。。。
パスワードを打ち込んだらインストール開始。
総ダウンロード容量: 86 M インストール容量: 274 M Is this ok [y/d/N]: y
こちらの画面がでたら、「y」です。
Railsを動かすには「Node.js」も必要なのでインストールしていきます。
なぜ!?と思わずに「RailsでJavascript使っててんじゃん!必要じゃん!」って思って前に進みます。
[ryo|~] sudo yum install nodejs npm --enablerepo=epel
、、、ってできないじゃんっと思った方もいると思います。(僕もそうでした。)
こちら記事が助けていただきました!本当にありがとうございます。。。↓
qiita.com
こちらもyes no聞かれるので、「y」です。
さてここまでの作業で、もう実はもうGitは使えるようになっております。
次に「rbenv」というRubyのバージョンを切り替えるツールをGitを使ってインスタンスで使えるようにします。
ざっくりいうとターミナルでrbenvコマンドを使えるようにして、必要なプラグインも入れて、rubyインストールできるようにしようってことです。
[ryo|~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv (※rbenvのインストール) [ryo|~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile (※パスを通す) [ryo|~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile [ryo|~]$ source .bash_profile (※.bash_profileの読み込み) (※ここまでがrbenvコマンドが使えるようになる設定) [ryo|~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build (※ruby-buildプラグインのインストール) (※Rubyがインストールできるようになります) [ryo|~]$ rbenv rehash
ちなみにrbenv rehashは、ruby、gemでインストールしてきたファイルの実行環境が生成されています。
ようやくRubyのインストールです。
# ruby 2.1.3のインストール(versionは適宜変更) [ryo|~]$ rbenv install -v 2.6.3 [ryo|~]$ rbenv global 2.6.3 [ryo|~]$ rbenv rehash [ryo|~]$ ruby -v
ruby -vで、インストールしたバージョンが表示されれば成功です。
PostgreSQLインストール
細かい設定は次回にして、とりあえずインストールしていきます。
こちらのドキュメントを参考にします。↓
PostgreSQL: Linux downloads (Red Hat family)
[ryo|~]$ sudo yum install postgresql-server postgresql-devel postgresql-contrib
ここは人それぞれで詰まったりするかもしれないので、調べながらじっくりやりましょう笑
インストールできたら起動します。
[ryo|~]$ sudo service postgresql initdb Hint: the preferred way to do this is now "postgresql-setup initdb" Initializing database ... OK [ryo|~]$ sudo service postgresql start Redirecting to /bin/systemctl start postgresql.service
Gitとの連携して、アプリのクローンの作成
まずインスタンスでGitに関する設定ファイルを作成し、内容を記述していきます。
viコマンドで作成、編集できます。↓
[ryo|~]$ vi .gitconfig
以下のように設定していきます。↓
----------------------------- [user] name = your_name (※gitに登録した自分の名前) email = hoge@hoge.com (※git登録時の自分のメールアドレス) [color] (※色付け) ui = true ※ githubの設定 [url "github:"] InsteadOf = https://github.com/ InsteadOf = git@github.com:
編集が終わった保存して終了。
アプリを配置するためのディレクトリを作成します。
[ryo|~]$ cd / [ryo|/]$ sudo chown ryo var (※varフォルダの所有者をryoにする) [ryo|/]$ cd var [ryo|var]$ sudo mkdir www [ryo|var]$ sudo chown ryo www [ryo|var]$ cd www (※wwwと同じ処理) [ryo|www]$ sudo mkdir rails [ryo|www]$ sudo chown ryo rails
mkdirコマンドで必要なフォルダを作成し、chownコマンドで作成したフォルダの所有者を変更しています。
ここからGitとの接続していきます。
Git HubでSSH接続していくので、必要な公開鍵などを作成していきます。
操作は以下の通りです。
[ryo|www]$ cd ~ [ryo|~]$ mkdir .ssh (#既に生成されている場合もあります。) [ryo|~]$ chmod 700 .ssh [ryo|.ssh]$ cd .ssh [ryo|.ssh]$ ssh-keygen -t rsa ----------------------------- Enter file in which to save the key ():aws_git_rsa (※ファイルの名前を記述して、エンター) Enter passphrase (empty for no passphrase): (※そのままエンター) Enter same passphrase again: (※そのままエンター) ----------------------------- [ryo|.ssh]$ ls (#「aws_git_rsa」と「aws_git_rsa.pub」が生成されたことを確認) [ryo|.ssh]$ vi config ----------------------------- # githubの場合以下を追記 Host github Hostname github.com User git IdentityFile ~/.ssh/aws_git_rsa (#秘密鍵の設定) ----------------------------- [ryo|.ssh]$ cat aws_git_rsa.pub ----------------------------- (※以下をコピーかメモしとく) ssh-rsa ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ryo@ip~~~~ -----------------------------
Git Hub側で作成した公開鍵をアップしていきます。
アカウントを持っていれば以下のURLで設定できます。
https://github.com/settings/ssh/new
「title」に鍵の名前、「key」で$ cat aws_git_rsa.pubで参照した内容を入力します。
「Add SSH key」で完了!
↓接続確認
[ryo|.ssh]$ ssh -T github
うまくいかなかったら以下のコマンドを実行して、
[ryo|.ssh]chmod 600 config
もう一度↓
[ryo|.ssh]$ ssh -T github
こんな画面がでたら成功!!↓
Hi Ryo! You've successfully authenticated, but GitHub does not provide shell access.
クローンを作成します。
ディレクトリを移動。↓
[ryo|.ssh]$ cd /var/www/rails
Git Hubにて、自分のアプリのリポジトリの画面を開きます。
緑のボタンを押して、右上の「Use SSH」を押したら、URLがでます。これをコピーします。
コピーしたのを貼り付けて、git cloneコマンドを実行します
[ryo|rails]$ git clone git@github.com:~~~~~~~~~~~~
lsコマンドでアプリがあるか確認↓
[ryo|rails]$ ls
自分はクローン無事成功しました!
secret_key_baseの設定
これもやっとかなあかんらしいです。
ローカル環境で
$ rails secret
出力されるものをコピーします。
sercret.ymlに以下の部分があるか確認。なかったら追加↓
sercret.yml ・ ・ production: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
$ export SECRET_KEY_BASE="コピーしたやつ"
これでひと段落です。
まだまだ手が震えております。
次は、webサーバーやらアプリケーションの設定、、、
あ、データベースの設定もしないと、、、
道のりは長いなーーーーー