<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Laravel 的遠程服務器任務處理器 Envoy - [簡介](#introduction) - [安裝](#installation) - [編寫任務](#writing-tasks) - [任務啟動](#setup) - [任務變量](#variables) - [任務故事](#stories) - [多個服務器](#multiple-servers) - [運行任務](#running-tasks) - [任務確認](#confirming-task-execution) - [通知](#notifications) - [Slack](#slack) <a name="introduction"></a> ## 簡介 [Laravel Envoy](https://github.com/laravel/envoy) 為定義在遠程服務器上運行的通用任務提供了一種簡潔、輕便的語法。它使用了 Blade 風格的語法,讓你可以很方便的啟動任務來進行項目部署、Artisan 命令運行等操作。目前,Envoy 只支持 Mac 及 Linux 操作系統。 <a name="installation"></a> ### 安裝 首先,使用 Composer `global require` 命令來安裝 Enovy : composer global require laravel/envoy 因為 Composer 的全局庫有時會導致包的版本沖突,所以你可以考慮使用 `cgr` ,它是 `composer global require` 命令的一種替代實現 `cgr` 庫的安裝指導可以在 [GitHub上找到](https://github.com/consolidation-org/cgr)。 > {note} 一定要確保 `~/.composer/vendor/bin` 目錄加入到了你的 PATH 中,這樣才能在命令行運行 `envoy` 。 #### 更新 Envoy 你也可以使用 Composer 來更新 Envoy 到最新版本。 要注意 `composer global update` 命令是更新你所有在全局安裝的包: composer global update <a name="writing-tasks"></a> ## 編寫任務 所有的 Envoy 任務都必須定義在項目根目錄的 `Envoy.blade.php` 文件中,這里有個例子: @servers(['web' => ['user@192.168.1.1']]) @task('foo', ['on' => 'web']) ls -la @endtask 如你所見, `@servers` 的數組被定義在文件的起始位置處,讓你在聲明任務時可以在 `on` 選項里參照使用這些服務器。在你的 `@task` 聲明里,你可以放置當任務運行時想要在遠程服務器運行的 Bash 命令。 你可以通過指定服務器的 IP 地址為 `127.0.0.1` 來執行本地任務: @servers(['localhost' => '127.0.0.1']) <a name="setup"></a> ### 任務啟動 有時,你可能想在任務啟動前運行一些 PHP 代碼。這時可以使用 ```@setup``` 區塊在 Envoy 文件中聲明變量以及運行普通的 PHP 程序: @setup $now = new DateTime(); $environment = isset($env) ? $env : "testing"; @endsetup 如果你想在任務執行前引入其他 PHP 文件,可以直接在 `Envoy.blade.php` 文件起始位置使用 `@include` : @include('vendor/autoload.php') @task('foo') # ... @endtask <a name="variables"></a> ### 任務變量 如果需要的話,你也可以通過命令行選項來傳遞變量至 Envoy 文件,以便自定義你的任務: envoy run deploy --branch=master 你可以通過 Blade 的「echo」語法使用這些選項, 當然也能在任務里用「if」 和循環操作。舉例來說,我們在執行 `git pull` 命令前,先檢查 `$branch` 變量是否存在: @servers(['web' => '192.168.1.1']) @task('deploy', ['on' => 'web']) cd site @if ($branch) git pull origin {{ $branch }} @endif php artisan migrate @endtask <a name="stories"></a> ### 任務故事 任務故事通過一個統一的、便捷的名字來劃分一組任務,來讓你把小而專的子任務合并到大的任務里。比如說,一個名為 `deploy` 的任務故事可以在它定義范圍內列出子任務名字 `git` 和 `composer` 來運行各自對應的任務: @servers(['web' => '192.168.1.1']) @story('deploy') git composer @endstory @task('git') git pull origin master @endtask @task('composer') composer install @endtask 當 story 寫好后,像運行普通任務一樣運行它就好了: envoy run deploy <a name="multiple-servers"></a> ### 多個服務器 你可以在多個服務器上運行任務。首先,增加額外的服務器至你的 `@servers` 聲明,每個服務器必須分配一個唯一的名稱。一旦你定義好其它服務器,就能夠在任務聲明的 `on` 數組中列出這些服務器: @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 @endtask #### 并行運行 默認情況下,任務會按照順序在每個服務器上運行。這意味著任務會在第一個服務器運行完后才跳到第二個。如果你想在多個服務器上并行運行任務,只需簡單的在任務聲明里加上 `parallel` 選項即可: @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 <a name="running-tasks"></a> ## 運行任務 要想運行一個在 `Envoy.blade.php` 文件中定義好的任務或者故事,就執行 Envoy 的 `run` 命令,并將這個任務的名字傳遞給它。Envoy 會去執行這個任務并且把任務執行過程中的輸出給打印出來: envoy run task <a name="confirming-task-execution"></a> ### 任務確認 如果你想要在運行任務之前進行提示確認,則可以增加 `confirm` 命令到任務聲明。這個選項對于破壞性的操作來說是相當有用的: @task('deploy', ['on' => 'web', 'confirm' => true]) cd site git pull origin {{ $branch }} php artisan migrate @endtask <a name="notifications"></a> <a name="hipchat-notifications"></a> ## 通知 <a name="slack"></a> ### Slack Envoy 也支持任務執行完畢后發送通知至 [Slack](https://slack.com)。`@slack` 命令接收 Slack hook 網址和頻道名稱。你可以通在在 Slack 的控制面板上創建 「Incoming WebHooks」 時來檢索 webhook 網址。webhook-url 參數必須是 `@slack` 的 Incoming WebHooks 所提供的完整網址: @finished @slack('webhook-url', '#bots') @endfinished 你可以選擇下方的任意一個來作為 channel 參數: <div class="content-list" markdown="1"> - 如果要發送通知至一個頻道: `#channel` - 如果要發送通知給一位用戶: `@user` </div> ## 譯者署名 | 用戶名 | 頭像 | 職能 | 簽名 | |---|---|---|---| | [@司維](https://phphub.org/users/11602) | <img class="avatar-66 rm-style" src="https://dn-phphub.qbox.me/uploads/avatars/11602_1487572457.png?imageView2/1/w/380/h/380"> | 翻譯 | [@leon0204](https://github.com/leon0204) at Github | --- > {note} 歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動共創開源社區。 > > 轉載請注明:本文檔由 Laravel China 社區 [laravel-china.org](https://laravel-china.org) 組織翻譯,詳見 [翻譯召集帖](https://laravel-china.org/topics/5756/laravel-55-document-translation-call-come-and-join-the-translation)。 > > 文檔永久地址: https://d.laravel-china.org
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看