edo1z blog

プログラミングなどに関するブログです

capistrano 使い方メモ cakePHP

もう忘れていたのでメモ。。

まずはプロジェクト用のフォルダ(例:myapp)をつくります。 myappに移動します。 capifyします。 configディレクトリに移動します。 deployディレクトリをつくります。

mkdir myapp
cd myapp
capify .
mkdir config/deploy
touch config/deploy/dev.rb

次に、config/deploy.rbと、config/deploy/development.rbとか、config/deploy/production.rbとかの中身をつくる。

config/deploy.rb

require "capistrano/ext/multistage"
require "capistrano_colors"
require "railsless-deploy"
require "rubygems"

ssh_options[:forward_agent] = true
set :normalize_asset_timestamps, false
set :use_sudo, false

#ステージ
set :stages, ["dev", "pro"]
set :default_stage, "dev"
# バージョン管理
set :scm, :subversion
# リポジトリ
set :repository, "リポジトリの場所"
# ブランチ
#set :branch, :master
# デプロイ方式
set :deploy_via, :copy
#世代管理
set :keep_releases, 3

# デプロイ対象外ファイル
set :copy_exclude, [".svn", "**/.svn",".svn/*"]

config/deploy/dev.rb

# アプリケーション名
set :application, "アプリ名"
# デプロイ先ディレクトリ
set :deploy_to, "デプロイ先ディレクトリパス/#{application}"

# デプロイサーバー
role :web, "ユーザ@ホスト"
role :app, "ユーザ@ホスト"

#ユーザアカウント
set:user, "ユーザ"
set:password, "パスワード"

namespace :deploy do
  before "deploy" do
    try_sudo "chown -R 所有者:グループ #{deploy_to}"
  end
end

after "deploy", "upload_config"

desc "各種セットアップ情報をアップロードします"
task :upload_config, roles => :web do
  run "rm -f #{latest_release}/app/Config/core.php"
  run "rm -f #{latest_release}/app/Config/bootstrap.php"
  run "rm -f #{latest_release}/app/Config/database.php"
  run "rm -f #{latest_release}/app/Config/email.php"
  run "rm -f #{latest_release}/app/Config/core.pro.php"
  run "rm -f #{latest_release}/app/Config/bootstrap.pro.php"
  run "rm -f #{latest_release}/app/Config/database.pro.php"
  run "rm -f #{latest_release}/app/Config/email.pro.php"
  run "mv -f #{latest_release}/app/Config/core.dev.php #{latest_release}/app/Config/core.php"
  run "mv -f #{latest_release}/app/Config/bootstrap.dev.php #{latest_release}/app/Config/bootstrap.php"
  run "mv -f #{latest_release}/app/Config/database.dev.php #{latest_release}/app/Config/database.php"
  run "mv -f #{latest_release}/app/Config/email.dev.php #{latest_release}/app/Config/email.php"
  run "chmod -R 755 #{deploy_to}/current/"
end

次に、デプロイ先の初期セットアップをする。デプロイ先のサーバに必要なフォルダなどをつくってくれる。

cap dev deploy:setup

あとは、デプロイしたいときに、デプロイする。

cap dev deploy