PR

FuelPHPのプロジェクトをDeployerでデプロイするレシピ

FuelPHP

やっべー、すわ。ニート生活を堪能していたら全然ブログも更新していなかったという。
まぁ余談はさておき、さっそく本題に。
今日のテーマは「FuelPHPのプロジェクトをDeployerでデプロイする」です。

Deployerとは

PHPで書かれたシンプルなデプロイツールです。昔はCapistrano使っていましたが、複数言語をひとつのプロジェクトに混ぜ込むのがあまり好きではないので、PHPで書かれたこいつを採用しました。
エージェントレスで動くのでデプロイ先のサーバには特に変わったものをインストールしなくていいのが最大の強みです。

Deployer公式サイト

今回したいこと

  • FuelPHP特有の設定をすべてこなす
  • Bitbucketからデプロイしたい(無料でプライベートレポジトリ)
  • デプロイ先には鍵認証でSSH Loginしたい

ネットでレシピをいろいろ見ていたんですが、やっぱりドンピシャのものがなかったので、いろいろと参考にしながら作りました。
このレシピも部分的に誰かの参考になればいいと思います。

作ったレシピ

<?php

require 'recipe/fuelphp.php';

// デプロイ先のサーバを定義します。
// サーバ名を「prod」とし、SSHは22番ポートを使用します。
server('prod', 'deploy-target.example.net', 22)
    ->user('ssh-user')
    // 鍵認証でログインする設定。第一引数にデプロイ先にある公開鍵、第二引数にローカルに配置した秘密鍵へのパスを書く
    ->identityFile('~/.ssh/id_rsa.ssh.pub', __DIR__ . '/secret.key')
    ->stage('production')
    ->env('branch', 'master')
    // デプロイ先のベースパスを定義します。
    ->env('deploy_path', '/var/app/system-path');

// Gitリポジトリを設定します。サーバ上にgitが必要です。あとbitbucketのデプロイ鍵の設定をしておきましょう
set('repository', 'git@bitbucket.org:bitbucketuser/afizo.git');

// マイグレーションファイルも共有しておかないと変なことになる
set('shared_files', ['fuel/app/config/production/migrations.php']);

// マイグレーションを走らせるためのタスクを定義
task('db_migrate', function () {
    run('FUEL_ENV=production php ./current/oil refine migrate');
});

注意点

なんといっても大きな注意点としては、gitをデプロイ先のサーバで通るようにしておくことですね。
githubの鍵を自分で先に突っ込んで設定しておくか、一度手作業でcloneしておけばkey chainに含まれるのでそれでいいです。

デプロイ用のユーザで、bitbucketのデプロイ鍵の設定をすることも忘れずに。

コメント

タイトルとURLをコピーしました