WAMP現在區分為x32與x64,如上所述,如果是新伺服器,必須先安裝對應版本的 Visual C++ 2008 可轉散發套件。
wamp x32 需安裝 [Microsoft Visual C++ 2008 可轉散發套件 (x86)]
wamp x64 需安裝 [Microsoft Visual C++ 2008 可轉散發套件 (x64)]
不安裝之後,當你要開啟 wampmanager 管理程式時,會一直出現錯誤,而無法啟用。
wampmanager.exe錯誤訊息:
記錄檔名稱: Application 來源: Application Error 日期: 2012/2/20 下午 03:07:10 事件識別碼: 1000 工作類別: (100) 等級: 錯誤 關鍵字: 傳統 使用者: 不適用 電腦: WIN08R2SP1 描述: 失敗的應用程式名稱: wampmanager.exe,版本: 1.6.1.33,時間戳記: 0x2a425e19 失敗的模組名稱: KERNELBASE.dll,版本: 6.1.7601.17651,時間戳記: 0x4e211319 例外狀況碼: 0x0eedfade 錯誤位移: 0x0000b9bc 失敗的處理程序識別碼: 0xbb0 失敗的應用程式開始時間: 0x01ccef9e43559d41 失敗的應用程式路徑: C:\wamp\wampmanager.exe 失敗的模組路徑: C:\Windows\syswow64\KERNELBASE.dll 報告識別碼: 811a009f-5b91-11e1-8bd8-08002701cd4a 事件 Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Application Error" /> <EventID Qualifiers="0">1000</EventID> <Level>2</Level> <Task>100</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2012-02-20T07:07:10.000000000Z" /> <EventRecordID>672</EventRecordID> <Channel>Application</Channel> <Computer>WIN08R2SP1</Computer> <Security /> </System> <EventData> <Data>wampmanager.exe</Data> <Data>1.6.1.33</Data> <Data>2a425e19</Data> <Data>KERNELBASE.dll</Data> <Data>6.1.7601.17651</Data> <Data>4e211319</Data> <Data>0eedfade</Data> <Data>0000b9bc</Data> <Data>bb0</Data> <Data>01ccef9e43559d41</Data> <Data>C:\wamp\wampmanager.exe</Data> <Data>C:\Windows\syswow64\KERNELBASE.dll</Data> <Data>811a009f-5b91-11e1-8bd8-08002701cd4a</Data> </EventData> </Event>
錯誤訊息二:
記錄檔名稱: Application 來源: SideBySide 日期: 2012/2/20 下午 03:07:10 事件識別碼: 33 工作類別: 無 等級: 錯誤 關鍵字: 傳統 使用者: 不適用 電腦: WIN08R2SP1 描述: "c:\wamp\bin\php\php5.3.9\php-win.exe" 的啟用內容產生失敗。 找不到依存組合 Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。 請使用 sxstrace.exe 進行詳細的診斷。 事件 Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="SideBySide" /> <EventID Qualifiers="49409">33</EventID> <Level>2</Level> <Task>0</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2012-02-20T07:07:10.000000000Z" /> <EventRecordID>671</EventRecordID> <Channel>Application</Channel> <Computer>WIN08R2SP1</Computer> <Security /> </System> <EventData> <Data>Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"</Data> <Data>c:\wamp\bin\php\php5.3.9\php-win.exe</Data>
WampServer管理程式啟動後,你還會發現就算修改 httpd.conf 裡的 Port 設定,還是無法啟用 Apache!因為在Windows Server 2008 R2 x64上我有掛IIS 7 (使用 80 Port),奇怪的事,就算把IIS 7停用,把80 Port給Apache還是無法啟用。
我知道從Vista / Windows Server 2008之後版本開始,對於 C: 有一些權限上的管理與以前不同,我沒有細查文件,我的決解辦法是移除原安裝,重新安裝至非 C: 的路徑,例如,d:\wamp 立即見效。
如果要把PHP掛到IIS上執行,有二種選擇
我選擇使用後者,在IIS裡設定相當簡單(注意,你在 IIS 的【角色服務』中,必有啟用【ISAPI 擴充功能】與【ISAPI 篩選器】),在【所在網站】或【虛擬目錄】裡有二個地方要設定,一在【處理常式對應】,二在【預設文件】。
處理常式對應 → 新增指令碼對應 →
- 要求路徑:*.php
- 執行檔:D:\wamp\bin\php\php5.3.9\php5isapi.dll (路徑自行參考,找 *isapi.dll 就對了)
- 名稱:PHP (隨便,方便辨識即可)
預設文件 → 新增 → 【 index.php 】 (一般PHP預設首頁文件檔案)
注意x32與x64混合環境
在上面最後一小段,你將PHP使用ISAPI方式掛到IIS上執行,不知道有沒有像我,碰到一堆的Error!後來驗證後證明是我自己搞不清楚狀況。@_@我們這台x64伺服器上有一個網站是執行x32(ASP)應用程式,當我要把WAMP x64版本php5isapi.dll掛到IIS執行(ASP網站),不管怎麼試就是無法啟動index.php,會一直出現Error,試了好久,結果是:
- 【WAMP x64 + Windows Server x64 + IIS (應用程式集區 - 啟用32位元應用程式)】(Bad)
- 【WAMP x32 + Windows Server x64 + IIS (應用程式集區 - 啟用32位元應用程式)】(Bad)
- 【WAMP x32 + Windows Server x64 + IIS】(Bad)
- 【WAMP x64 + Windows Server x64 + IIS】(Good)
也就是說,在Windows Server 2008 R2 x64環境下,想要用ISAPI方法使用PHP只有一種方式,完全x64。【WAMP x64 + Windows Server x64 + IIS】就只有這樣的組合才有辦法讓ISAPI可以正常運作PHP。目前在【Windows Server x64 + IIS (應用程式集區 - 啟用32位元應用程式)】是無法透過ISAPI方式讓PHP正常運作。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。