目前小弟的部落格是運作在 Server 2008 R2 的虛擬主機中,因此是使用 IIS 7.5 + MySQL + PHP + WordPress 技術,而在這陣子使用 Server 2012 Beta/RC 一段時間深感非常穩定後,決定將部落格的資料複製到 Server 2012 RC 的虛擬環境測試,也等於為未來正式版的移轉做準備。

在 Server 2012 RC 的 IIS 8 安裝設定 PHP 依然很容易,設定方式其實跟之前寫的文章沒啥不同,頂多只有在 Server 2012 RC 新增 IIS 角色服務的頁面設定稍微不太一樣。但是在開啟測試環境中的部落格時,卻出現如上圖的一堆錯誤訊息:「PHP Warning: Creating default object from empty value in XXXXXXX on line XXX」 /:S/

於是,重新開始檢視我所測試安裝的軟體及環境與現行有啥差異:
1. IIS 7.5 vs IIS 8。單純的 PHPInfo 測試都正常,應該不是構成問題的兇手。
2. 作業系統版本。雖然目前執行的 Server 2012 是 RC 版,但 IIS 都能跑 PHPInfo 的測試,系統核心的不同應該不會影響 PHP 的執行。
3. MySQL 版本。測試環境所使用的的確是最新版本,但從錯誤訊息看來,也應該跟資料庫無關。

4. PHP 版本。現行運作的是 5.3.x 版,測試環境則是執行前陣子釋出的 5.4.4。
這才想起來,PHP 網站前陣子釋出新版本的 PHP 程式,是 5.3.14 跟 5.4.4 同時發佈,但部落格所使用的 WordPress 程式仍是從原現行版本(非最新)搬過來的,而且 PHP 也是 5.3.X 這代,說不定真的是 PHP 版本造成的狀況,於是立馬下載更換。

果然,把 PHP 換成 5.3.14 就沒有再出現 PHP 錯誤了。或許升級到最新版本的 WordPress 就不會發生,不過這就還要再找時間測看看。搜尋了一下網路,發現也有人提出類似建議:WordPress and PHP 5.4

題外話,在把玩 Windows Server 2012 Beta/RC 的這段時間,發現角色及功能服務的新增似乎做了點不錯的變動。過去在 Server 2008/2008R2 時代,使用精靈是無法同時設定角色及功能,必須分開做;但到了 Server 2012,只要選擇精靈就可以同時做,包括某一角色的服務也能做新增。

只是,要記得展開才會找到喔!