Envoy是一個composer擴展包,它的本質做用是代替你登陸遠程的目標服務器(下稱目標機)並執行一系列命令,它的執行環境要有事先裝有php與composer,但它不單單能在php項目裏起做用,緣由是前面提到的它的本質是幫你執行命令,而這命令不僅針對php的命令。所以你不只能夠把它看成部署項目的工具,甚至能夠是對目標機的簡單管理工具。
下面從本地機對目標機的登陸到envoy的安裝使用來分步介紹它。php
假定目標服務器是sorgo@192.168.8.8
laravel
#若是本地機的用戶還沒rsa密鑰的那先生成 ssh-keygen -t rsa -C "your_email@example.com" #發送密鑰到目標機,並進行密碼驗證 ssh-copy-id sorgo@192.168.8.8 #測試是否能直接ssh登陸而再也不要求輸入密碼 ssh sorgo@192.168.8.8
#全局安裝 composer global require laravel/envoy #一鍵生成envoy執行文件模板:Envoy.blade.php envoy init sorgo@192.168.8.8
修改Envoy.blade.php文件git
{{-- 這是blade文件裏的註釋 --}} {{-- web是標識這臺服務器的名字 --}} @servers(['web' => 'jeffio@116.85.48.221']) {{-- deploy是給這個任務起的名字 --}} @task('deploy') cd /www/wwwroot/sifou.com git pull origin master composer install @endtask
執行任務,命令格式是envoy run 任務名
web
envoy run deploy
以上便可一鍵完成:shell
這樣一個簡單的部署就完成了,極大下降了維護的操做成本。服務器
更多寫操做請參考收下文檔
Envoy詳細文檔composer