簡單輕鬆部署你的項目 - Deployer

deployer

本文主要介紹 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-init

初始化後,會自動生成 deployer.php 文件。 deployer.php 文件包含了基本的部署配置和任務,且有明確的註釋,你能夠根據註釋在適當的地方添加配置以及任務。

沒錯,按照 deployer.php 文件的註釋,設置一下 repositoryserver config ,基本上都能正常運行。

如何快速入門使用?能夠看看官方入門文檔 https://deployer.org/docs/get... ,這裏不一一列出。

當你第一次成功部署的時候, Deployer 會自動幫你在服務器上生成一下文件:

  • releases 包含你部署項目的版本(默認保留 5 個版本)

  • shared 包含你部署項目的共享文件或目錄(如:LaravelStorage 目錄、.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 設置自動部署教程:

Laravist - Coding Webhook 自動部署 Git 項目

利用WebHook實現PHP自動部署Git代碼

使用PHP腳本遠程部署git項目

若是你想使用圖形化界面的部署工具,你可使用:Jenkinswalle - 瓦力部署 等等。

本文主要簡單介紹一下 Deployer 以及使用 Deployer 自動部署如何去作,而不會作太過詳細的教程,由於 Deployer 的文檔已經寫得很清晰易明,以及有各類設置 Webhook 的教程,因此我沒有必要一一列出(由於我懶)。

最後的最後感謝 overtrue - 超哥

更多請關注PJ Blog

相關文章
相關標籤/搜索