Webテクノロジーの継続的な進化により、PHPは依然としてバックエンド開発では無視できない重要な言語です。実際の開発では、展開プロセスが効率的であるかどうかは、多くの場合、プロジェクトのオンライン効率と安定性に直接影響します。この記事では、優れた自動展開ツール-Deployerを使用して、効率的で制御可能なPHP展開プロセスを構築するのに役立ちます。
Deployerは、複雑な展開プロセスを簡素化するために設計されたPHPベースのオープンソース展開ツールです。 PHPを使用して構成ロジックを書き込み、開発者が展開戦略を柔軟に制御できるようになり、自動タスクでプロジェクトの発売を迅速に完了できます。
展開者の中核的な利点は次のとおりです。
柔軟な構成:展開スクリプト自体はPHPコードであり、論理判断、コードスニペットなどを使用して柔軟な構成を可能にします。
複数の環境をサポートする:展開ポリシーは、さまざまな環境(ステージングや生産など)に設定できます。
並列展開機能:複数のサーバーノードへのコードの展開を同時にサポートし、展開時間を大幅に削減します。
Deployerを使用して展開する際の典型的なPHPプロジェクトのディレクトリ構造は次のとおりです。
my-project/ ├├)/ current/ p │││。8.120000/ │││。8150000/ └└)/合計があります/ ├├)/ logs/ └└)/ストレージ/
Project Root Directoryでは、Composerを使用してDeployerをインストールします。
作曲家は、展開/展開者を必要とします
Main Deployment Configuration ScriptとしてProject Root Directoryにdeploy.php
ファイルを作成します。これが基本的な構成の例です。
<?php require 'vendor/autoload.php'; // プロジェクト名 set('application', 'my-project'); // コードリポジトリアドレス set('repository', 'git@github.com:username/my-project.git'); // 構成 staging 環境 host('staging') -> hostname( 'emple.com') - > set( 'deploy_path'、 '/var/www/staging'); //生産環境ホストを構成する(「生産」) - > hostname( 'emple.com') - > set( 'deplopy_path'、 '/var/www/production'); //メイン展開タスクタスクを意味します( 'Deploy'、function(){ //最新のバージョンにカットりのためにえて$ releasePath = "{{deploy_path}}/letheres/{{timestamp}}"; run( "git clone - Depth 1 {{repository}} $ releasePath"); //シンボリックリンク実行を作成( "ln -sfn $ releasepath {{deploy_path}}/current"); //依存関係をインストールする( "cd {{deploy_path}}/current && composer install"); // runの古代いバージョンのクリーンアップ( "ls -dt {{deploy_path}}/relinees/* | tail -n +6 | xargs -r rm -rf"); }); //ステージング展開タスクタスクを意味する( 'staging'、function(){ set( 'branch'、 'ステージング'); Invoke( 'Deploy'); }) - > onroles( 'ステージング'); //生産展開タスクタスク( 'production'、function()を意味する{ set( 'branch'、 'production'); Invoke( 'Deploy'); }) - > onroles( 'production');
この構成例は、プロジェクトの基本情報、環境情報を設定し、deploymentロジックをtask()
から定義する方法を示しています。 {{deploy_path}}
や{{timestamp}}
などの変数は、展開時に実際の値に自動的に置き換えられます。
コマンドを展開することは非常にシンプルで、端末で実行するだけです。
Dep Deploy
Deployerは、サーバーに自動的に接続し、コードをプルし、依存関係を更新し、古いバージョンをクリーンアップします。構成に応じて、展開プロセス全体を自動化します。
展開者では、PHPプロジェクトの展開プロセスはもはや複雑ではありません。効率を向上させるだけでなく、展開の制御性と保守性も向上します。中小規模のプロジェクトであろうと、複数のノードを備えた大規模システムであろうと、Deployerは強力なサポートを提供します。試していない場合は、次のプロジェクトに紹介し、展開自動化によってもたらされる変更を体験することもできます。