本文主要介紹 Deployer —— 一個具備模塊化、代碼回滾、並行任務等功能的 PHP
部署工具。php
Deployer 用法很是簡單易用,能夠快速上手,且支持多個 PHP
框架。html
Deployer 安裝有多種方法:git
第一種 經過 Phar
存檔,只需運行一下命令便可:github
curl -LO https://deployer.org/deployer.phar mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep
第二種 經過 composer
安裝:web
composer require deployer/deployer --dev
使用:bash
php vendor/bin/dep
第三種 經過 Github
源代碼安裝:服務器
clone
最新的代碼:composer
git clone https://github.com/deployphp/deployer.git
在源代碼目錄下運行:框架
php ./build
第三種方法會創建
deployer.phar
的 Phar 歸檔,因此建議使用第一種方法安裝。curl
安裝完後,你能夠經過 dep
使用 Deployer ,在你的項目目錄下運行如下命令:
dep init
運行此命令後會出現下圖的選項,可選擇你所需的,固然本教程使用 Laravel
,so 選擇 [1] Laravel
。
初始化後,會自動生成 deployer.php
文件。 deployer.php
文件包含了基本的部署配置和任務,且有明確的註釋,你能夠根據註釋在適當的地方添加配置以及任務。
沒錯,按照 deployer.php
文件的註釋,設置一下 repository
、server config
,基本上都能正常運行。
如何快速入門使用?能夠看看官方入門文檔 https://deployer.org/docs/get... ,這裏不一一列出。
當你第一次成功部署的時候, Deployer 會自動幫你在服務器上生成一下文件:
releases
包含你部署項目的版本(默認保留 5 個版本)
shared
包含你部署項目的共享文件或目錄(如:Laravel
的 Storage
目錄、.env
文件等 )
current
軟鏈接到你當前發佈的版本
須要注意的地方: Deployer 默認使用 ACL 來設置權限,你能夠設置
writable_mode
來改變這個行爲。
到了這裏,恭喜你,已經能夠愉快使用 Deployer 。可是又有一個問題,每次提交 push
一次代碼後都要運行 dep deploy
纔會部署,有木有以爲很麻煩,接下來就說一下自動部署,相信你也想一切自動化的吧。
須要作的工做:
生成 git 用戶公鑰和部署公鑰 -> 設置用戶公鑰到你賬戶相關聯的 SSH Keys -> 設置部署公鑰到你項目的 Deploy keys -> 準備 hook 文件 -> 在項目上添加一個 Webhook 並設置 hook 的網址
固然,你要在服務器上自動部署還須要在服務器上安裝 deployer
並設置好部署配置,確保其能正常運行。當 push
代碼後觸發 webhook
,發送請求到服務器的 hook
,若驗證成功則執行 dep deploy
命令。
自動部署的文章不少,也很是簡單,基本上就是在 Git
代碼倉庫設置一下 webhook
而後在服務器配置一下就搞掂的事,我就不一一列出,由於作重複的事也沒什麼意義。
webhook 設置自動部署教程:
若是你想使用圖形化界面的部署工具,你可使用:Jenkins、walle - 瓦力部署 等等。
本文主要簡單介紹一下 Deployer 以及使用 Deployer 自動部署如何去作,而不會作太過詳細的教程,由於 Deployer 的文檔已經寫得很清晰易明,以及有各類設置 Webhook
的教程,因此我沒有必要一一列出(由於我懶)。
最後的最後感謝 overtrue - 超哥
更多請關注PJ Blog