The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在 Windows Azure 網站 (WebSite) 使用 PEAR 套件

若要在 Windows 平台安裝 Windows Azure SDK for PHP 開發套件,可以透過 ComposerPEAR 進行安裝,如果可以,最簡單的方式是透過 Composer 直接安裝套件,安裝完之後直接把 vendor 目錄整個佈署到網站根目錄下,再透過 <?php require 'vendor/autoload.php'; ?> 自動載入即可。但若遇到 Composer 無法成功安裝 Windows Azure SDK for PHP 開發套件的情況,那就必須手動透過 PEAR 工具進行套件下載。不過,Windows Azure 網站並不支援自訂 PEAR 套件安裝,所以若要佈署本機的 PEAR 套件到 Windows Azure 網站,還有些額外的工作要做。

先透過 Web Platform Installer 在本機安裝完整 Windows Azure SDK for PHP 套件:

注意:透過 Web Platform Installer 完整 Windows Azure SDK for PHP 的過程,並沒有真的把 Windows Azure SDK for PHP 下載回來,這個安裝項目僅僅幫你安裝所有相依套件而已

 

安裝 PEAR 工具 ( 參考 Getting and installing the PEAR package manager 文件 )

  • 建立 C:\php 資料夾
  • 下載 http://pear.php.net/go-pear.phar 並儲存到 C:\php 目錄下
  • 以系統管理員身分開啟命令提示字元視窗,並進入 C:\php 資料夾
  • 執行 php go-pear.phar 然後一直按 Enter 就可以完成安裝
  • C:\php\PEAR_ENV.reg 機碼合併到目前使用者的機碼資料庫中 (直接用滑鼠雙擊按下 [是] 即可)

 

透過 PEAR 工具安裝 Windows Azure 套件

  • 以系統管理員身分開啟命令提示字元視窗,並進入 C:\php 資料夾
  • 執行 pear channel-discover pear.windowsazure.com
  • 執行 pear install pear.windowsazure.com/WindowsAzure-0.3.1 (注意:版本可能會變)

: 如果上述步驟無法成功執行,可以先執行 pear clear-cache 清除本地 PEAR 快取,如下:

現在 Windows Azure SDK for PHP 與其相依套件都已經透過 PEAR 安裝完成,所有 PEAR 套件都會放在 C:\php\pear 資料夾下,如下圖示:

image

 

將所有 PEAR 套件佈署到 Windows Azure 網站的方法

1. 直接將 C:\php\pear 資料夾複製到網站根目錄

2. 在根目錄下建立一個 .user.ini 設定檔,此檔案是 Windows Azure 網站設定 PHP 的方式 ( 等同 php.ini 設定檔 ),要求 Windows Azure 網站在執行 PHP 並發生錯誤的時候可以顯示錯誤訊息,其內容如下:

display_errors=On

3. 建立一個測試程式 test.php 其內容如下,也就是直接載入 WindowsAzure 函式庫:

<?php
require_once 'WindowsAzure/WindowsAzure.php';
?>

4. 發布網站到 Windows Azure 網站並執行 test.php 網頁,由於無法正確載入函式庫,所以一定會有錯誤,而我最主要的目的則是想得知該網站所在的實體路徑為何!其錯誤訊息範例如下:

Warning: require_once(WindowsAzure/WindowsAzure.php): failed to open stream: No such file or directory in C:\DWASFiles\Sites\<網站名稱>\VirtualDirectory0\site\wwwroot\test.php on line 2

Fatal error: require_once(): Failed opening required 'WindowsAzure/WindowsAzure.php' (include_path='.;C:\php\pear') in C:\DWASFiles\Sites\<網站名稱>\VirtualDirectory0\site\wwwroot\test.php on line 2

5. 接著我們修改 .user.ini 設定檔,新增一條 include_path 設定,並且把 PEAR 的路徑寫上去,如下:

display_errors=On
include_path=".;C:\php\pear;C:\DWASFiles\Sites\<名稱>\VirtualDirectory0\site\wwwroot\pear"

6. 大功告成!

 

現在你的網站可以正確載入 WindowsAzure 函式庫,也可以執行所有 Windows Azure 所有 API 了! ^_^

 

相關連結