Website使用很方便,但有的時候,我們希望獲得更多的靈活性,比如需要特別的PHP外掛程式、需要不同的PHP版本,或者需要運行其他進程,甚至希望登錄到目標虛擬機器上去。 這時,可以採用Cloud service來運行PHP應用。 Cloud service是一組被HTTP://www.aliyun.com/zixun/aggregation/13357.html">Azure管理的虛擬機器,上面運行了windows作業系統, 並且載入了IIS和PHP運行環境,可以支援ASP和PHP的運行。 PHP發佈到Website時,用FTP把代碼上傳即可。 採用Cloud service時,上傳過程稍微不同。 上傳時需要使用Azure工具進行打包。 下面看下具體步驟。
該工具只能運行在Windows下。 從這裡下載安裝Windows Azure SDK for PHP。 該工具組括了一個本地的Azure模擬器和Power shell工具。 安裝完畢後,在開始功能表中找到Windows Azure PowerShell程式,以管理員身份運行
接下來就可以進行發佈了。 首先要為該PHP應用生成一個對應的Cloud service應用
C:\>New-AzureServiceProject myProject
該操作會在C:\下生成一個目錄,包含了該服務的基本檔,如服務定義ServiceDefinition.csdef和服務配置資訊ServiceConfiguration.Cloud.cscfg。 他們定義了該服務由幾個角色構成,每個角色有幾個虛擬機器,以及各種變數資訊等。 任何一個cloud service都由一個或者若干個角色(Role)構成。 一個Role代表了功能相同的一組虛擬機器。 比如,一個PHP網站有前段Web頁面和後端一個批次程式構成,那麼我們可以定義兩個role,分別是WebRole和WorkerRole
接下來可以生成一個角色
C:\myProject> Add-AzurePHPWebRole MyWebRole
該操作會在目前的目錄下生成一個目錄容納該角色包含的檔,新生成時裡面只有index.php和一個bin目錄。 其中index.php是顯示當前PHP環境資訊。 bin目錄是Azure進行系統組態所需的一些腳本,我們可以不用管它。 我們可以把已有的PHP應用代碼拷貝到角色目錄(C:\myProject\MyWebRole)下
在上傳應用到Azure前,我門可以在本地先測試。 在本地啟動模擬器
C:\MyProject>Start-AzureEmulator
可以看到下面的輸出:
Creating local package... Starting Emulator... Role is running at HTTP://127.0.0.1:81Started
然後打開瀏覽器訪問上面給出的位址即可進行測試。 下面的命令可以結束調試
C:\MyProject> Stop-AzureEmulator
測試完成後,開始最終發佈。 發佈時我們要先和Azure訂閱關聯。 執行如下命令:
C:\MyProject>Get-AzurePublishSettingsFile
該操作會打開一個瀏覽器,並提示登錄Azure。 輸入登錄資訊後,系統會彈出一個下載對話方塊。 把檔下載到本地。