Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
更新
- 正名為 Microsoft Azure。
- 請參考「使用 Microsoft Azure 架設 PHP 網站(上)」課程。
簡介
在上一篇文章中瞭解了在 Microsoft Azure 上要如何執行 PHP 應用程式,這一篇文章介紹各種部署網站上 Microsoft Azure 的方式,不過由於虛擬機器服務(Microsoft Azure Virtual Machines)的部署方式是完全自己設定的,所以這裡主要介紹的是網站服務(Windows Azure Websites)的各種部署方式以及如何用 Windows Azure SDK 的工具來進行部署應用程式至雲端服務(Windows Azure Cloud Services)。
這一系列文章包括:
- PHP 應用程式執行環境
- 部署PHP應用程式
- 資料庫的選擇: MySQL or SQL Database
- 使用 Microsoft Azure Storage – Blob storage處理靜態檔案
- 使用 Microsoft Azure Storage – Table Service處理Session物件
- 使用 Microsoft Azure Service Bus與其它系統進行通訊
- 實例說明:簡單購物網站實例
部署至網站服務 (Microsoft Azure Websites)
Microsoft Azure 網站服務提供了多種部署網站的方式(如:FTP/WebDeploy/TFS/Git/Mercurial/Dropbox 等),讓您可以自由選擇熟悉的部署方式。而將 PHP 網站應用程式部署至網站服務時,有兩件事情必須先瞭解:
- 雖然 Microsoft Azure 網站服務無法修改 php.ini 檔案對PHP執行環境做設定,但您依然可以在網站的根目錄下使用 .user.ini 檔案(別忘了最前面是 . 開頭)來做設定,設定的方式與 php.ini 檔案完全一樣,這樣便可以依據需求來自訂調整,而且不會影響到其它的 PHP 網站應用程式的設定。
- 有的函式庫可能需要使用到網站的實體路徑,網站的根目錄實體路徑為:「C:\DMASFiles\Sites\<網站名>\VirtualDirectory0\site\wwwroot\ 」。
接下來便能開始瞭解每一種部署網站的方式。
使用FTP上傳網站
使用FTP上傳是最簡單的部署方式,只要使用任何熟悉的FTP工具,把網站應用程式的所有檔案上傳到 Microsoft Azure網站服務的磁碟空間上即可。而FTP上傳的連線主機名稱、帳號密碼可以在網站後台的儀表板中看到:
在網站服務的後台儀表板裡可以看到 FTP 連線資訊
以這張圖為例,FTP主機的名稱是 waws-prod-hk1-001.ftp.azurewebsites.windows.net,使用者名稱是 phponwindowsazure\ericsk,連線密碼的部份則是可以在「快速概覽」的部份選擇「建立您的部署認證」或是「重設您的部署認證」來設定。
這裡要特別注意的是,使用 FTP 或 FTPS 連接成功後,網站的根目錄是放在 site\wwwroot 目錄下,而不是 FTP 的根目錄。一旦檔案傳輸完畢,網站服務就立刻以新的檔案來提供服務。
使用版本控制機制(Visual Studio Online, Git, Github, Mercurial, bitbuckets, 甚至是 Dropbox)
在現代開發流程中,版本控制(version control)是很常見的機制,而在 Microsoft Azure的網站服務中也支援使用版本控制的機制來進行網站的部署,它主要的支援方式為:
- 在 Microsoft Azure 網站服務上建立一個存儲庫(repository),將檔案 push 至該存儲庫就會換上新版本作為上線的部署。目前支援使用 git 做這樣的部署機制。
- 綁定一個線上版本控制服務的存儲庫,當有新的部署時,便會同步部署至 Microsoft Azure 網站,可以與原本的開發流程結合。目前支援此機制的服務有:Visual Studio Online、GitHub、Bitbuckets、Codeplex 或是自行架設的git/mercurial 伺服器,甚至可以使用 Dropbox 的資料夾做類似的部署。
使用版本控制部署的好處,就是在於可以根據不同的 check-in 來切換部署網站的版本。比方說在 Microsoft Azure 網站服務上建立了一個 git 存儲庫,在 push 了兩次到此存儲庫之後,便產生了兩個可以部署的版本,並且在後台可以隨時切換。
使用 git 推送兩次之後,網站上產生兩個部署
而針對每一種版本控制的部署方式,可以參考 Microsoft Azure 產品網站上的這篇教學文件:「Publishing from Source Control to Windows Azure Web Sites」。
部署至雲端服務(Windows Azure Cloud Services)
如前一篇文章所述,Microsoft Azure Cloud Services 是一個基於 Windows Server 以及 IIS 的 PaaS(Platform-as-a-Service)的服務平台,它提供兩種應用程式的執行環境:Web Role 及 Worker Role,前者就是像 Web 應用程式這樣,應用程式的執行是經由 web request 所驅動的;Worker Role 則是可以讓應用程式獨立執行。而在部署 PHP 網站或應用程式時,也必須一併部署 PHP 的執行環境(因為平台上只有很乾淨的 Windows Server + IIS)。目前 Microsoft Azure SDK 提供了一系列建立 Web/Worker Role 以及部署的工具,詳細的 step-by-step可以參考這篇文章的教學:「How to create PHP web and worker roles」