Laravel 基本チュートリアル -- SSH タスク
Envoy Task Runner
概要
Laravel Envoy は、リモートサーバー上での一般的なタスクの定義と実行のためのミニで簡潔な構文を提供します。 Blade 構文スタイルを使用すると、デプロイメントやアーティザン コマンドなどのタスクを簡単に設定できます。現在、Envoy は Mac と Linux オペレーティング システムのみをサポートしています。
インストール
まず、Composer のグローバル コマンドを使用して Envoy をインストールする必要があります:
composer global require "laravel/envoy=~1.0"
~/.composer/vendor/bin ディレクトリーがが PATH に追加されるため、ターミナルの使用時に envoy コマンドを直接使用できるようになります。
Envoy を更新
Composer を使用して Envoy を最新の状態に保つことができます:
composer global update
タスクをコンパイルします
すべての Envoy タスクは次のようにする必要がありますプロジェクトのルート ディレクトリにある Envoy.blade.php ファイルで定義されます。簡単な例を次に示します。
@servers(['web' => 'user@192.168.1.1'])@task('foo', ['on' => 'web']) ls -al@endtask
ご覧のとおり、@servers ディレクティブはファイルの先頭で定義されており、サーバーのリストを含む配列が含まれています。 @task ディレクティブはタスクを定義するために使用されます。配列にはタスク名と配列パラメータが含まれ、その値はタスクが実行されるサーバーです。 @servers ディレクティブ リスト。 @task ディレクティブ内に Bash コードを配置する必要があります。このコードは、タスクの実行時にリモート サーバーに渡されます。
ローカル タスク
サーバーをローカルとして指定してローカル タスクを実行できます:
@servers(['localhost' => '127.0.0.1'])
ブート
場合によっては、Envoy タスクを実行する前に特定の PHP 操作を実行する必要がある場合があります。 @setup ディレクティブを使用して変数を宣言でき、PHP を使用してその内部で作業できます:
@setup $now = new DateTime(); $environment = isset($env) ? $env : "testing";@endsetup
また、@include ディレクティブを使用して外部 PHP ファイルを含めることもできます:
@include('vendor/autoload.php')
タスクの確認
リモートサーバーが特定のタスクを実行する前にプロンプトを表示したい場合は、タスク定義に確認ディレクティブを追加できます:
@task('deploy', ['on' => 'web', 'confirm' => true]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
タスク変数
必要に応じて、コマンド ライン スイッチを使用して Envoy タスクに変数を渡すことができます。これにより、タスクをカスタマイズできます:
envoy run deploy --branch=master
これを使用できますBlade の echo 構文を介してタスクにオプションを追加します:
@servers(['web' => '192.168.1.1'])@task('deploy', ['on' => 'web']) cd site git pull origin {{ $branch }} php artisan migrate@endtask
複数のサーバー
複数のサーバーにわたってタスクを簡単に実行できます。まず、@servers ディレクティブにサーバーを追加する必要があります。各サーバーには一意の名前を割り当てる必要があります。サーバーを追加した後、実行するタスク コマンドでキーの配列を使用して、実行するサーバーをリストする必要があります:
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])@task('deploy', ['on' => ['web-1', 'web-2']]) cd site git pull origin {{ $branch }} php artisan migrate
デフォルトでは、タスクはサーバー間で連続して実行されます。これは、現在のサーバーのタスクが完了した後にのみ、次のサーバーのタスクが実行されることを意味します。
並列実行
サーバー間でタスクを並列実行する場合。タスク ディレクティブに並列オプションを追加できます。
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])@task('deploy', ['on' => ['web-1', 'web-2'], 'parallel' => true]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
タスク マクロ
タスク マクロを使用すると、一連のタスクを順番に実行するコマンドを定義できます。たとえば、git タスクとコンポーザー タスクを実行するデプロイ マクロを定義します。
@servers(['web' => '192.168.1.1'])@macro('deploy') git composer@endmacro@task('git') git pull origin master@endtask@task('composer') composer install@endtask
マクロを定義すると、1 つのコマンドで複数のタスクを実行できます。
envoy run deploy
タスクの実行
Envoy.blade.php ファイルで定義されたタスクを実行するには、Envoy の run コマンドを使用する必要があります。タスク名またはマクロ名をコマンドに渡すことができます。 Envoy はタスクを実行し、サーバー実行の出力を同期して表示します:
envoy run task
Notification
HipChat
後でメッセージを送信するには @hipchat コマンドを使用できます。タスクの実行が完了すると、メッセージがチームの HipChat ルームに通知されます。このコマンドは、メッセージに示されている API トークン、ルーム名、送信者のユーザー名を受け取ります:
@servers(['web' => '192.168.1.1'])@task('foo', ['on' => 'web']) ls -al@endtask@after @hipchat('token', 'room', 'Envoy')@endafter
必要に応じて、カスタム メッセージを HipChat ルームに送信することもできます。メッセージを作成するとき、タスクで使用できる変数もメッセージ内で使用できます:
@after @hipchat('token', 'room', 'Envoy', "$task ran in the $env environment.")@endafter
Slack
HipChat に加えて、Envoy は Slack への通知の送信もサポートしています。 @slack コマンドは、Slack フック URL、チャネル名、および送信する必要があるメッセージのコンテンツを受け取ります:
@after @slack('hook', 'channel', 'message')@endafter
Slack の Web サイトで Incoming WebHook を作成することで Webhook URL を取得できます。フック パラメーターは、次のような完全な Webhook URL である必要があります:
https://hooks.slack.com/services/ZZZZZZZZZ/YYYYYYYYY/XXXXXXXXXXXXXXX
次のいずれかのパラメーターをチャネルとして指定できます:
- #channel チャネルに通知を送信
- @user がユーザー

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
