本文主要介紹 Deployer —— 一個具有模組化、程式碼回滾、並行任務等功能的 PHP
部署工具。
Deployer 用法非常簡單易用,可以快速上手,且支援多個 PHP
框架。
安裝
Deployer 安裝有多種方法:
第一種 透過 Phar
存檔,只需執行一下命令即可:
curl -LO https://deployer.org/deployer.phar
mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep
第二種 透過 composer
安裝:
composer require deployer/deployer --dev
使用:
php vendor/bin/dep
第三種 透過 Github
原始碼安裝:
clone
最新的程式碼:
git clone https://github.com/deployphp/deployer.git
在原始碼目錄下執行:
php ./build
第三種方法會建立
deployer.phar
的 Phar 歸檔,所以建議使用第一種方法安裝。
使用
安裝完後,你可以透過 dep
使用 Deployer ,在你的專案目錄下執行以下命令:
dep init
執行此命令後會出現下圖的選項,可選擇你所需的,當然本教程使用 Laravel
,so 選擇 [1] Laravel
。
初始化後,會自動生成 deployer.php
檔案。 deployer.php
檔案包含了基本的部署配置和任務,且有明確的註釋,你可以根據註釋在適當的地方新增配置以及任務。
沒錯,按照 deployer.php
檔案的註釋,設定一下 repository
、server config
,基本上都能正常執行。
如何快速入門使用?可以看看官方入門文件 https://deployer.org/docs/getting-started ,這裡不一一列出。
當你第一次成功部署的時候, 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 - 超哥
本作品採用《CC 協議》,轉載必須註明作者和本文連結