capcakeでCakePHPアプリをデプロイ

スポンサーリンク

capcake(Capistrano::cakephp)を使って、CakePHP3 アプリケーションをデプロイする方法です。capcake は Capistrano に薄く機能が追加してある、CakePHP アプリケーションのデプロイ用ライブラリです。

https://github.com/jadb/capcake

CakePHP デプロイのためライブラリとしては有名らしい。

— 環境 —
PHP 5.5.19
CakePHP 3.1.1
capcake v3.0.2
capistrano 3.4.0

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

capcake および capistrano インストール

capcake, capistrano は Ruby gem のライブラリなので、事前に Ruby 環境の構築と Gem をインストールできるようにしておく必要がある。rbenv で Ruby 環境を準備するには以下記事等を参考にお願いします。

Mac の Ruby 管理を rvm から rbenv に乗り換え | EasyRamble
rbenv と ruby-build で Ruby をインストールして管理 〜 CentOS6 | EasyRamble

また、私は Gem の管理には Bundler を使っているので、なければ Bundler も入れる。

Bundler: The best way to manage a Ruby application’s gems

Bundler を使うと、Gemfile で Gem パッケージを管理できます。ということで、CakePHP アプリケーションのディレクトリで Gemfile を作成。

Gemfile

続いて bundle install で capistrano, capcake をインストールする。

これで、CakePHP アプリケーションのディレクトリの vendor/bundle 以下に、capcake と capistrano がインストールされました。

capistrano, capcake の初期設定

cap install コマンドで Capistrano が使うファイルを生成します。

.capistrano 以下を .gitignore に追加。この時点で .capistrano というディレクトリは作成されていなかったけれど、capcake の README に書いてありましたので。

.gitignore

続いて、Capfile に capcake のモジュールを追加。

Capfile

オプションとして、以下等を追加できます。

それぞれ、assets のビルド、DBマイグレーション実行、Composer によるライブラリのインストールを実行するためのモジュールです。

Composer は以下の手順でインストールできます。

デプロイ用スクリプトを作成

ここまでできたら、capistrano のデプロイ用スクリプトを作成する。config/deploy.rb を編集します。

config/deploy.rb

アプリケーション名やリポジトリURL等は適宜変更する。

secrets.yml や production 環境用の設定ファイルをアップロードするための、upload タスクを作成しました。これらのファイルは、.gitignore に指定して git 管理から外しているので、production 環境に別途アップロードする必要がありましたので。詳細については、以下記事等を参考お願いします。

CakePHP3でYAMLの設定ファイルを読み込み | EasyRamble
CakePHP3で環境を切り替え(development/production) | EasyRamble
CakePHP3で環境毎(development/production)にデータベース・設定を切り替え | EasyRamble

以上で、config/deploy.rb は終了。

最後に、production 環境に固有の設定を、config/deploy/production.rb に記載する。

config/deploy/production.rb

以上で Capistrano のデプロイ用スクリプトの準備は終了です。

デプロイ関連のコマンド

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

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

デプロイ実行。

一応以上で capcake を使ってデプロイが成功しました。注意点として、README に…

“IMPORTANT: Tested with CakePHP 3 thus far, but should work for CakePHP 2 that uses composer.”

「CakePHP 3 でも今のとこ動作するけど、CakePHP 2 で使ってね」的なことが書いてあります。

ということで、諸々あったり capcake 自体がそれほど多くの機能を使えるわけでもないので、結局現在は Capistrano を直接使うように変更しました。どちらを採用するかは好み次第かと思いますが、Capistrano を直接使って CakePHP アプリケーションをデプロイする方法はまた後日に書きます。

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

Leave Your Message!