本地 Apache/IIS 運行正常,發布至 Azure Web Apps 後訪問報 HTTP 500,錯誤詳情顯示 FastCgiModule 處理 PHP56_via_FastCGI 失敗,代碼異常點在 ServicesBuilder::getInstance()->createBlobService($constr)。
Azure PHP 運行時預設未安裝 PEAR(PHP Extension and Application Repository),而 Azure SDK for PHP 依賴 PEAR 中的 HTTP_Request2、Mail_mime 等包。本地環境通常已全局安裝 PEAR,導致開發階段未發現缺失。
composer require pear/http_request2 pear/mail_mime
pear 目錄隨代碼部署,並在 php.ini 中設定 include_path 指向該目錄。<?php
// 測試腳本
require_once 'HTTP/Request2.php';
echo "PEAR HTTP_Request2 loaded OK";
?>
部署後訪問該腳本,若無錯誤則 PEAR 已正常加載。
mcr.microsoft.com/azure-functions/php)測試。