読者です 読者をやめる 読者になる 読者になる

woshidan's blog

そんなことよりコードにダイブ。

Apache+PhusionPassengerで動かす4.0系のRails(データベースはMySQL)をcapistrano3でデプロイ

サーバ設定 Ruby on Rails

以下の作業はこれまでの作業記事の作業をこなしていることが前提なので、
これだけ読んで作業しても多分エラーでます。
とりあえず、自分が出したエラーは
http://woshidan.hatenablog.com/entry/2015/01/02/031942
にまとめました。
あまりにも試行錯誤しすぎていたため(上記記事参照)、ここの作業記事は手順を少し整理した後で書いてます。

内容

  • capistranoの設定
    • capistrano関連のgemをGemfileに追加
    • capistranoの設定ファイルの生成
    • capistranoの設定
      • Capfile
      • config/deploy.rb
      • config/deploy/production.rb
  • デプロイ先サーバの設定
    • bitbucketのホストとbitbucketへアクセスするためのデプロイキーを~/.ssh/configに追加
      • bitbucketのデプロイキーの登録
      • デプロイキーを~/.sshディレクトリへアップロード
    • アプリケーションが使用するMySQLのデータベースの用意
  • デプロイ

Capistranoの設定

capistrano関連のgemをGemfileに追加

development環境で使うgemとして以下のgemを入れました。

capistranoの設定ファイルの生成

上記のgemをGemfileに追加した後、

その後、

とすると、以下の位置に設定ファイルが生成されます。

capistranoの設定

以下、生成されたファイルのうち、設定を変更したものについて、Gistでその内容と補足を紹介します。

Capfile

config/deploy.rb

config/environments/production.rb

デプロイ先サーバの設定

デプロイ先サーバへログインしてしておく設定作業です。

bitbucketのホストとbitbucketへアクセスするためのデプロイキーを~/.ssh/configに追加

上記のcapistranoの設定では、デプロイに当たって、ソースコードをリモートから取得するので、リモートのホストへアクセスする必要があります。

今回はbitbucketでソースコードを管理していたので、bitbucketへアクセスするための認証鍵のデプロイキーと、bitbucketのホストの情報をデプロイ先サーバの~/.ssh/configに追加します。

Githubを利用している場合は、別途調べてみてください。

デプロイ作業をするユーザでサーバへログインして、~/.ssh/configファイルを作成し、以下のような内容を追加しました。

bitbucketのデプロイキーの登録

bitbucketの作業内容を管理しているリポジトリのページへアクセスして下さい。左下の方に歯車のアイコンがついたSettingsという項目があります。

クリックして表示されるメニューの中にデプロイキーという項目があります。

クリックしてください。

鍵を追加ボタンを押して、外部のプログラム等からリポジトリの内容を読み取るために必要な認証鍵であるデプロイキーの登録を行います。

鍵の生成法等は、VPSを借りてCentOSのセットアップをする(2) - woshidan's blog

などを見てください。

既に鍵を用意している場合は、鍵の対の公開鍵の内容をKeyという項目の入力欄にコピペして鍵を追加を押してください。

デプロイキーを~/.sshディレクトリへアップロード

先ほどbitbucketに登録した秘密鍵をscpコマンドを使って、デプロイ先サーバの~/.sshディレクトリへ先ほどのデプロイキーをアップロードします。

えい。

アプリケーションが使用するMySQLのデータベースの用意

Railsのアプリケーションが利用するMySQLのデータベースを用意します。

rootユーザでmysqlのログインして、以下のようなコマンドを打てばいいと思います。

デプロイ

デプロイコマンド

以下のコマンドを打ち込みましょう。

今回の設定だと、途中で現在作業しているbranchの名前が聞かれますので、そのまま入力してください。

assetsのプリコンパイルについて

今回は、途中で力つきたのでプリコンパイルは手動でhttp://shoken.hatenablog.com/entry/2014/05/20/200215を参考に行っています。