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

2023.07.14 08:00
2023.07.11 09:58
PHP製のデプロイツール「Deployer」でプロジェクトをデプロイしてみる

プロジェクトをデプロイしたいと思って色々と調べてみたところ、どうやら何かしらのツールを使うのがよさそうです。古くは「Capistrano」や「Rocketeer」などがあったみたいですが、今だとPHPのプロジェクトならPHP製のデプロイツール「Deployer」がいいとのこと。早速やってみます。

https://deployer.org/

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!」と表示されれば完了みたいですね。

繋がらない場合は、サーバーの情報が違っていたり、秘密鍵の内容や場所が違ったりすることが多いみたいです。

また、デプロイ先などの記述をミスると、サーバーのデータが消えてしまったりしますので、ここは慎重にやる必要がありそうです。

今回は以上です!