2015年3月15日 星期日

利用 Kudu 協助在 Azure Website 上使用 Composer 安裝 Azure SDK for PHP

Composer

Composer 是一個管理專案相依性(dependncy)的 PHP 管理工具,若您想過 Ruby On Rails 您會知道 gem 或 Nodejs 您就會認識 npm,簡而言之,我們在撰寫 PHP Application也會用到許多Libraries,然而有些Libraries可能需要另一些 Libraries,所以相依性(dependency)的問題就產生啦!

而救星出現了,也就是 Composer !其實也就是利用 composer.json 宣告專案裡頭,需要安裝哪些版本的 Libraries,然後編譯後就直接幫你把這些檔案下載下來,並存至在 vendor 這個資料夾,並佛心的產生 autoload.php 讓我們自動載入這些 Libraries。

或許有些朋友,聽過梨子先生(Pear),它也可以幫忙管理類似相依性的問題,但其實它還真不是普通的不容易上手 ... 然而在 Composer 除了自己的 Repository,也可以支援 Git,更可以從 Pear 抓取你想安裝的Libraries。


Kudu

老實說在 Azure Website 安裝 Composer 可能有些許麻煩(我的環境是Mac),按照 官方手冊 還是覺得麻煩的話,這裏有個解套方案,就是 Kudu,它在 Github 是開源的,有興趣可以自行查看。  

Kudu 提供許多工具可以協助管理 Azure WebSite 服務,而前往自己的 Kudu Website 就是透過這個連結:https://YourWebsiteName.scm.azurewebsites.net,將你的網站名稱帶入就可以囉。

而 Kudu 也支援 SSO ,所以輸入你的 Azure 管理帳號,就可以獲得認證並開始管理,介面大致如下:

安裝 Composer

在網頁上的點選 Debug console -> CMD ,一開始進去是 D:\home ,所以要切換資料夾至
網頁根夾也就是 wwwroot隨後輸入以下:
安裝成功後我們在 wwwroot 做個 Batch 也就是 .bat 檔方便以後呼叫
呼叫看看,成功長這樣
很高興的你也跟我一樣出現成功畫面的話,我們可以開始在 wwwroot 製作 composer.json,並透由 composer 進行安裝囉,而這邊我是要安裝 Azure SDK for PHP官方的文件有提到  json的格式,但是大家要注意的是相依性問題啊,所以這篇 StackOverFlow 文章 就可以解決 json 內容到底要寫什麼的問題了。

Composer的安裝指令與更新指令分別如下:
安裝完畢後,就可以去 wwwroot 裡頭找 vendor 資料夾確認是否有安裝好 composer 所宣告需要的套件了,並在需要使用的php檔案中,加入 require 'vendor/autoload.php';  便可以使用囉,期望大家也都可以成功!!!

參考

沒有留言:

張貼留言