[Azure][VSTS]透過 VSTS 發佈 PHP 的程式到 Web App 上

調整 VSTS 相關的 Build Task,讓沒有專案的  PHP 程式可以順利佈署到 Web App 上

以往我們將 PHP 所開發的系統,要佈署到 Azure Web App 上面的話,很常都是人工手動用 FTP 將寫好的程式和相關檔案,一併用 FTP 上傳上去,有些時候會覺得檔案太多,因此就手動挑選有修改的檔案上傳,但這樣的方式來說,偶爾會發生有檔案遺忘上傳。

最近我們希望將這些程式,跟其他的系統一樣,都一併放在 VSTS 內統一控管,並且配合 Build 的方式,佈署到特定的 Slot 上面,測試沒有問題之後,再用 Swap 的方式切換。因為 VSFS 本身就支援 GIT 的板控,因此開發人員利用 SourceTree 來做管理,也沒有太大的問題。但是要 Build 的話,那就比較麻煩一點了,因為 PHP 的系統一般我們都不會使用 Visual Studio 來開發,也不會將相關程式放到專案內,因此該怎麼來使用 VSTS 做發佈呢 ?

這個問題煩惱了一陣子,多謝同事 Jimmy 和 Eiri 的幫忙,總算完成的相關設定。如果您也這樣的問題,那麼可以這樣來做,首先在 Build 的時候選擇 Azure WebApp 的樣板

進到設定畫面後,首先我們將其他三個 Task 都刪除,因為 PHP 的程式我們不需要再透過 NuGet 和 VS 去做編譯,因此可以將下圖紅框中的三個 Task 都刪除

接著我們可以再加入一個 Archive files 的 Task ,透過這個 Task 將我們的 Source 給打包壓縮成為 zip 的檔案,就可以來搭配 Azure App Service Deploy 的 Task 來發佈了。

在我的測試專案中,會將 PHP 的程式都放在 src 的目錄下,因此我待會就要在前面加入的 Archive files 的  Task 中,來指定要壓縮這個目錄下的所有檔案。

因此在 Archive files 的這個 Task 內,我在 1 的地方特別要選擇 src 目錄,另外也要特別記住在 2 的地方,壓縮檔案所產生的檔案名稱

而來到 Azure App Service Deploy 這裡,在 1 的地方就如同另外一篇文章 ( 使用新的 VSTS 的 Web App 設定,無法正常佈署網站 ? ) 中所談到的,記得要先 unlink 後重新設定,否則會有授權失敗的錯誤。而在 2 的地方,如果在之前 Archive Task 內沒有設定設定,那麼這裡你可以使用預設的設定就好了。而在 3 的地方要稍微注意一下,如果有些時候你會刪除檔案或者是替換一些圖片,可以在這裡選擇在佈署之前,先將網站上先做刪除,避免一些遺留的檔案。

基本上完成上述的設定後,您就可以輕鬆的去發佈 PHP 的程式囉。因為我對 php 實在不熟,只會其他的一招就是 phpinfo ,因此就寫了一個顯示 phpinfo 的網頁,當完成佈署之後,連上網站後就可以看到相關的資訊了,看來有成功的佈署 php 的網頁程式了,這下就不用煩惱美工和 PHP 的開發人員,因為沒有搭配 VS 就不能去發佈程式的困擾了。