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は強力なサポートを提供します。試していない場合は、次のプロジェクトに紹介し、展開自動化によってもたらされる変更を体験することもできます。