CakePHPアプリケーションをCapistranoでデプロイ

スポンサーリンク

CakePHP アプリケーションを、Ruby 製のデプロイツールである Capistrano を使って自動でデプロイする方法です。Capistrano および Capistrano::Composer を使います。

https://github.com/capistrano/capistrano
https://github.com/capistrano/composer/

いずれも Ruby Gem のライブラリとなりますので、事前に Ruby, Bundler などの環境が構築されている前提です。

— 環境 —
CakePHP 3.2.5
Ruby 2.2.3
capistrano 3.4.0
capistrano-composer 0.0.6

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

では、以降 Capistrano で CakePHP アプリケーションをデプロイする手順。

capistrano と capistrano-composer の gem インストール

まずは、capistrano と capistrano-composer の gem をインストールします。Gemfile に追記してインストール。

Gemfile

–path vendor/bundle のオプションを付けて、vendor/bundle ディレクトリ以下にインストールします。

Capistrano 関連ファイルを生成・編集

続いて、cap install コマンドで Capistrano が使うファイルを生成する。

上記ファイル郡が生成されました。

Capfile を編集します。

Capfile

Capistrano のデプロイ・スクリプトを作成

後は、Capistrano 用のデプロイスクリプトを作成します。作成済みの config/deploy.rb および config/deploy/production.rb を編集する。

config/deploy.rb

ファイルアップロード用のタスク(deploy:upload)、マイグレーション実行用のタスク(deploy:migrations:migrate)とロールバック用のタスク(deploy:migrations:rollback)などを作成しました。

の行により、マイグレーションのタスク(deploy:migrations:migrate)は、deploy:publishing の後に自動で実行される設定です。

環境ごとの role を config/deploy/production.rb に設定します。

config/deploy/production.rb

以上で、デプロイスクリプトは完成です。

デプロイ関連のコマンド

デプロイが上手く動作するかの事前チェック。

ファイルのアップロード。

デプロイ実行。

上記のデプロイ関連コマンドを必要に応じて使います。

その他遭遇した問題と対処法

デプロイ先サーバーに Composer が入っていなかったら、前もってインストールしておきます。

デプロイ時に次のエラーが出た場合は…

Composer インストールを以下のようにします。

また CakePHP では intl 絡みのエラーがよく発生するのですが、その場合は intl 拡張を入れて対処します。

CakePHPデプロイでPHP extension intlエラー | EasyRamble

以上で、デプロイが無事に成功しました。CakePHP アプリケーションも簡単に自動デプロイを可能にしてくれる Capistrano は本当に便利です。ウェブアプリケーションのデプロイには手放せない必須ツールですね。

スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
 
スポンサーリンク

Leave Your Message!