現在の位置: ホーム> 最新記事一覧> Deployerを使用して、PHPプロジェクトの自動展開とワンクリックロールバックを効率的に実現します

Deployerを使用して、PHPプロジェクトの自動展開とワンクリックロールバックを効率的に実現します

M66 2025-06-15

導入

PHPプロジェクトの開発と発売中、展開プロセスは通常、時間がかかり、エラーが発生しやすいです。効率と安定性を向上させるために、この記事では、展開ツールを使用してPHPプロジェクトの自動展開と迅速なロールバックを実現し、各リリースが安定して信頼できることを確認する方法を紹介します。

展開者とは何ですか?

Deployerは、DSL(ドメイン固有の言語)構文を使用して展開プロセスを簡単に定義するオープンソースPHP展開ツールです。 GITなどのさまざまな展開方法をサポートし、建物、許可設定、サービスリロードなどのタスクを自動的に実行できます。展開者は、PHP開発チームの継続的な配信シナリオに非常に適したスケーラビリティとカスタマイズを優れています。

Deployerをインストールします

Deployerを使用するには、最初にComposerを介してインストールします。
 
composer require deployer/deployer --dev

インストールが完了すると、 deploy.php構成ファイルがプロジェクトルートディレクトリで生成され、展開ルールとタスクを定義します。

展開スクリプトを構成します

以下は、サーバー接続、コードリポジトリ、共有ディレクトリ設定、カスタムタスクなど、基本的な「deploy.php」構成の例です。
 
<?php
require 'vendor/autoload.php';
require 'recipe/common.php';

// サーバー構成
server('production', 'your_server_address')
    ->user('your_username')
    ->password('your_password')
    ->set('deploy_path', '/var/www/html/your_project_path');

// プロジェクト構成
set('repository', 'your_git_repository');
set('shared_files', ['.env']);
set('shared_dirs', ['storage']);
set('writable_dirs', ['bootstrap/cache']);
set('keep_releases', 5);

// タスクを構築します
task('build', function () {
    run('cd {{release_path}} && build-script');
});

// 展開が失敗した場合、自動的にロック解除されます
after('deploy:failed', 'deploy:unlock');

// カスタムタスク:リロード PHP-FPM
task('reload:php-fpm', function () {
    run('sudo systemctl reload php-fpm');
});

// 自動展開プロセス
before('deploy', 'build');
after('deploy', 'reload:php-fpm');

実際の状況に応じて、上記の構成のサーバーアドレス、ユーザー名、倉庫アドレス、その他のフィールドを交換してください。

展開コマンドを実行します

構成を完了したら、プロジェクトルートディレクトリのコマンドラインから実行します。
 
dep deploy

このコマンドは、GITリポジトリ内のコードを自動的にプルし、サーバーの指定されたディレクトリに展開し、プリセットタスクを実行します。プロセス全体が高度に自動化され、展開プロセスを大幅に簡素化できます。

プロジェクトロールバック操作

展開されたプロジェクトで問題が発生した場合、次のコマンドをすばやく実行して、以前の安定したバージョンにロールバックできます。
 
dep rollback

ロールバック操作により、以前のバージョンが復元され、対応する自動化タスクが再実行され、プロジェクトサービスが通常に戻るようにします。

要約します

展開者の助けを借りて、PHPプロジェクトの展開とロールバックプロセスを標準化および自動化することができ、人間の運用エラーを大幅に削減し、リリース効率を改善します。柔軟な構成とカスタムタスクメカニズムを通じて、DeployerはPHPの開発、運用、メンテナンスに不可欠な展開ツールになりました。