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 了! ^_^

 

相關連結