SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?
キーテイクアウト
-
継続的な統合および配信サービスである
- Semaphoreciは、Laravel EnvoyまたはDeployerと併用して、テストに成功した後に展開プロセスを自動化できます。 Laravel EnvoyやDeployerなどの展開ツールを設定して、サーバーを定義し、展開プロセスを処理するタスクを作成することにより、Semaphoreciを使用することができます。展開戦略は、自動または手動展開のオプションを使用して、Semaphoreciのプロジェクトのページで構成できます。 統合および展開プロセスは、リポジトリの変更をコミットすることによりトリガーされます。問題が発生した場合、Semaphoreciはログを表示して問題を調査する機能を提供します。また、さらにトラブルシューティングを行うためにビルドサーバーにSSHを使用するオプションも提供します。
- この記事は、Wern AnchetaとViraj Khatavkarによって査読されました。 SetePointコンテンツを最高にするためにSitePointのピアレビュアーのすべてに感謝します!
Semaphoreciを使用して継続的な配信と展開者に使用して、コードをDigitalOcean生産サーバーにプッシュします。 Deployerに慣れていない場合は、この紹介をチェックすることをお勧めします。
デモアプリケーション
市場からの写真をロードする500pxアプリケーションを使用します。 Laravelを使用して構築されたので、ここで建築プロセスに関する記事全文を読んで、GitHubでレポを見つけることができます。
デプロイヤースクリプトの作成
展開者の動作方法は、サーバーを定義し、それらのサーバーにアプリケーションを展開するプロセスを処理するタスクを作成することです。 deploy.phpスクリプトは次のようになります
この特定のスクリプトが何をしているのかについて詳しく知りたい場合は、 Deployerの記事を読む必要があります。次のステップは、Semaphoreciプロジェクトを設定することです。 Semaphoreciを試したことがない場合は、クラッシュコースの記事を読んでください。
展開のセットアップ
展開戦略を構成するには、プロジェクトのページに移動して、展開のセットアップをクリックする必要があります。
次に、一般的な展開オプションを選択して、Semaphoreciが手動構成を自由に追加できるようにします。
自動展開を選択した後、Semaphoreciは展開コマンドを指定する機能を提供します。マニュアルと自動の違いは、成功したテストのたびに自動展開がトリガーされ、マニュアルにより成功したコミットを展開できることです。
注:Semaphoreciは、展開プロセス専用の新しいSSHキーを作成することをお勧めします。誰かが私たちの鍵などを盗んだ場合、簡単に取り消すことができます。キーは、最後に保存する前に暗号化されます。
キーは〜/.ssh/id_rsaで利用可能であるため、default。
すべてがセットアップされたので、統合と展開プロセスをトリガーするためにリポジトリにいくつかの変更をコミットする必要があります。
<span><span><?php </span></span><span> </span><span><span>require_once "recipe/common.php"; </span></span><span> </span><span><span>set('ssh_type', 'native'); </span></span><span><span>set('default_stage', 'staging'); </span></span><span><span>env('deploy_path', '/var/www'); </span></span><span><span>env('composer_options', 'install --no-dev --prefer-dist --optimize-autoloader --no-progress --no-interaction'); </span></span><span><span>set('copy_dirs', [ </span></span><span> <span>'app/commands', </span></span><span> <span>'app/config', </span></span><span> <span>'app/controllers', </span></span><span> <span>'app/database', </span></span><span> <span>'app/lang', </span></span><span> <span>'app/models', </span></span><span> <span>'app/src', </span></span><span> <span>'app/start', </span></span><span> <span>'app/tests', </span></span><span> <span>'app/views', </span></span><span> <span>'app/filters.php', </span></span><span> <span>'app/routes.php', </span></span><span> <span>'bootstrap', </span></span><span> <span>'public', </span></span><span> <span>'composer.json', </span></span><span> <span>'composer.lock', </span></span><span> <span>'artisan', </span></span><span> <span>'.env', </span></span><span><span>]); </span></span><span> </span><span><span>set('shared_dirs', [ </span></span><span> <span>'app/storage/cache', </span></span><span> <span>'app/storage/logs', </span></span><span> <span>'app/storage/meta', </span></span><span> <span>'app/storage/sessions', </span></span><span> <span>'app/storage/views', </span></span><span><span>]); </span></span><span><span>set('writable_dirs', get('shared_dirs')); </span></span><span><span>set('http_user', 'www-data'); </span></span><span> </span><span><span>server('digitalocean', '174.138.78.215') </span></span><span> <span>->identityFile() </span></span><span> <span>->user('root') </span></span><span> <span>->stage('staging'); </span></span><span> </span><span><span>task('deploy:upload', function() { </span></span><span> <span>$files = get('copy_dirs'); </span></span><span> <span>$releasePath = env('release_path'); </span></span><span> </span><span> <span>foreach ($files as $file) </span></span><span> <span>{ </span></span><span> <span>upload($file, "<span><span>{$releasePath}</span>/<span>{$file}</span>"</span>); </span></span><span> <span>} </span></span><span><span>}); </span></span><span> </span><span><span>task('deploy:staging', [ </span></span><span> <span>'deploy:prepare', </span></span><span> <span>'deploy:release', </span></span><span> <span>'deploy:upload', </span></span><span> <span>'deploy:shared', </span></span><span> <span>'deploy:writable', </span></span><span> <span>'deploy:symlink', </span></span><span> <span>'deploy:vendors', </span></span><span> <span>'current',// print current release number </span></span><span><span>])->desc('Deploy application to staging.'); </span></span><span> </span><span><span>after('deploy:staging', 'success'); </span></span>
上記のスクリーンショットは、McRyptの拡張機能が有効になっていないため、PHPの職人がクリアコンパイルされたコマンドがエラーを返しているため、失敗したコミットです。
注:Semaphoreciが提供するもう1つのきちんとしたトリックは、ビルドサーバーにsshingして、何がうまくいかなかったかを確認することです。
その他の展開ツール
deploymentコマンドステップでは、特使をインストールして実行します。
それだけです!特使は、追加したキーを使用して認証し、指定したアップデートコマンドを実行します。
結論
Laravel EnvoyをSemaphoreciと統合するには、いくつかのステップが含まれます。まず、SemaphoreciにLaravelプロジェクトを設定する必要があります。その後、Composerを使用してプロジェクトにEnvoyをインストールする必要があります。インストールしたら、Project Root DirectoryにEnvoy.blade.phpファイルを作成できます。このファイルには、自動化するすべてのタスクが含まれます。次に、Semaphoreciパイプラインに新しいコマンドを追加して、Envoyタスクを実行できます。コマンドは次のようになります:PHP Vendor/Bin/Envoy Run Deploy。 、LaravelのようなPHPアプリケーションに機能的で完璧です。 Laravelにすぐに使用できるサポートを提供するため、Laravelアプリケーションを展開するためにカスタムスクリプトを作成する必要はありません。 Deployerは、リポジトリから最新のコードを取得したり、作曲家の実行を実行したり、移行を実行したり、PHP-FPMの再起動など、すべての展開タスクを処理します。また、ゼロダウンタイムの展開、アトミック展開、並列展開もサポートしています。これにより、展開時間を大幅に短縮できます。 Gitlab Ci/CD LaravelとEnvoyを使用すると、プロジェクトルートディレクトリに.gitlab-ci.ymlファイルを作成する必要があります。このファイルは、CI/CDパイプラインの段階を定義します。アプリケーションをテストするための段階、アプリケーションを構築するための段階、およびアプリケーションを展開するための段階を定義できます。展開段階では、Envoyを使用して展開タスクを自動化できます。 .gitlab-ci.ymlファイルにスクリプトを追加して、このような使節タスクを実行するだけです。 /cd?
CI/CD用のLaravelの構成には、テスト環境のセットアップ、アプリケーションのテストの作成、ビルドプロセスの設定、展開プロセスの設定が含まれます。 Phpunitを使用して、依存関係を管理するための作曲家、Laravel EnvoyやDeployerなどのツールを展開タスクを自動化できます。また、SemaphoreciやGitLab CI/CDなどのCI/CDプラットフォームを選択し、テストを実行し、アプリケーションを構築し、アプリケーションを展開するように構成する必要があります。CI/CDおよびEnvoyでLaravelアプリケーションを展開するにはどうすればよいですか?
CI/CDおよびEnvoyを使用してLaravelアプリケーションを展開するには、展開段階を含むCI/CDパイプラインのセットアップが含まれます。この段階では、Envoyを使用して展開タスクを自動化できます。 Project Root DirectoryにEnvoy.blade.phpファイルを作成し、このファイルにタスクを定義するだけです。次に、CI/CDパイプラインにコマンドを追加して、Envoyタスクを実行できます。コマンドは次のようになります:PHPベンダー/ビン/エンボイランデプロイ。
laravel展開におけるセマフォレシの役割は何ですか? Laravelアプリケーションのテストと展開のプロセス。 Semaphoreciにパイプラインをセットアップして、テストを実行し、アプリケーションを構築し、アプリケーションを展開できます。 Semaphoreciは、PHPやLaravelを含む幅広い言語とフレームワークをサポートしており、Laravel EnvoyやDeployerなどの多くの人気のあるツールと統合しています。 Laravel Envoyを使用すると、ブレードの構文でタスクを定義し、リモートサーバーで実行できます。 Envoyを展開に使用するには、Composerを使用してプロジェクトにインストールする必要があります。次に、Project Root DirectoryにEnvoy.blade.phpファイルを作成し、このファイルに展開タスクを定義できます。タスクが定義されたら、Envoy Runコマンドを使用してタスクを実行できます。 -Laravelのボックスサポート。 Laravel DeploymentにDeployerを使用するには、Composerを使用してプロジェクトにインストールする必要があります。次に、プロジェクトルートディレクトリにdeploy.phpファイルを作成し、このファイルに展開タスクを定義できます。タスクが定義されたら、DEP Deployコマンドを使用してそれらを実行できます。いくつかの違いがあります。 Envoyは、タスクを定義するためにブレード構文を使用しますが、DeployerはPHP構文を使用します。 EnvoyはよりLaravel固有のものですが、Deployerはさまざまなフレームワークをサポートしています。 Envoyはよりシンプルで使いやすいですが、Deployerは、ゼロダウンタイムの展開、アトミックデプロイ、並列展開など、より高度な機能を提供します。
はい、同じプロジェクトでLaravel EnvoyとDeplayerの両方を使用できます。ただし、同様の目的を果たすため、両方のツールを使用する必要はありません。ニーズに最適なものを選択できます。ブレード構文を備えたよりシンプルなツールを好む場合は、Envoyを選択できます。さまざまなフレームワークをサポートするより高度なツールを希望する場合は、展開を選択できます。以上がSemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









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

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

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

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

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

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

ReactPhpの詳細な解釈の非ブロッキング機能の公式紹介は、多くの開発者の質問を呼び起こしました。
