PHP製のデプロイツール「Deployer」でプロジェクトをデプロイしてみる

プロジェクトをデプロイしたいと思って色々と調べてみたところ、どうやら何かしらのツールを使うのがよさそうです。古くは「Capistrano」や「Rocketeer」などがあったみたいですが、今だとPHPのプロジェクトならPHP製のデプロイツール「Deployer」がいいとのこと。早速やってみます。
1. インストール
これはPHP製なので、当然PHPが動く環境を用意する必要がありますね。ローカルだとXAMPPやMAMP、Dockerなどで用意するのがいいかと思います。MacならHomeBrewでPHPをインストールしてもいいですね。
今回はHomeBrewでPHPが入っている前提で進めて行きたいと思います。また、コマンドラインの作業が必須となります。
Deployerを使うにはComposerが必要となるらしいので、
もし入っていなければ先にこちらをインストールしておきます。
入っているかどうかの確認は以下のコマンドでできるようです
composer --version
Composerが入っていることが確認できたので、Deployerのインストールに進みます。
composer require deployer/deployer --dev
インストールが終わったら確認してみます。
php vendor/bin/dep -V
バージョンが表示されたので問題なくインストールされましたね。
2. 設定
次に「deploy.php」という設定ファイルを作る必要があるみたいです。
<?php
namespace Deployer;
require 'recipe/laravel.php';
// SSH設定
set('ssh_multiplexing', true);
set('git_tty', true);
// リポジトリ指定
set('repository', 'git@github.com:GitHubユーザー名/リポジトリ名.git');
// Host設定(本番)
host('production')
->setHostname('デプロイ先ホスト名')
->setRemoteUser('デプロイ先ユーザー名')
->setPort(接続ポート番号)
->setIdentityFile('秘密鍵の場所')
->setDeployPath('デプロイ先の場所')
->set('branch', '対応するブランチ')
->set('http_user', false)
->set('keep_releases', 過去のバックアップを何個まで残すか);
task('deploy', [
'deploy:prepare',
'deploy:vendors',
'deploy:publish',
]);
// Deploy後の処理
after('deploy', 'deploy:done');
task('deploy:done', function () {
// プロジェクトdirに移動
cd("{{release_path}}");
// 不要ファイルの削除
run('rm .gitignore');
});
こんな感じでデプロイするリポジトリやデプロイ先の設定、デプロイ後の処理などを書くようです。これで最低限の準備は完了です。
3. デプロイ実行
設定が完了したので、コマンドからデプロイを実行してみます。
php ./vendor/bin/dep deploy
「Successfully deployed!」と表示されれば完了みたいですね。
繋がらない場合は、サーバーの情報が違っていたり、秘密鍵の内容や場所が違ったりすることが多いみたいです。
また、デプロイ先などの記述をミスると、サーバーのデータが消えてしまったりしますので、ここは慎重にやる必要がありそうです。
今回は以上です!