以前每當一個 ZendStudio 的新版本發布時都會同時發布一個新版的 ZendStudioServer 組件,這個組件可以讓我們很方便地進行遠端偵錯。但是自從 Zend 發布了 ZendPlatform 以後他們就不再更新 ZendStudioServer 組件了。這就導致我們只能遠端偵錯 PHP 5.1.x 的環境,而不能調試 PHP 5.2.x。要想調試 PHP 5.2.x 只能裝一個龐大的 ZendPlatform。:(
因此我一直在找一個“輕量級”的解決方案。近日在逛 Zend.com 時發現了一個好東西:ZendDebugger-5.2.3-Windows-i386.zip,直覺告訴我,這就是我想要的。果不其然,今天實驗成功!
下面就說一說我的實驗步驟:
- 到這裡下載 ZendDebugger-5.2.3-Windows-i386.zip,然後將其解壓到某一目錄,比如:C:Program FilesZend,這就會在該目錄裡面建立一個 ZendDebugger-5.2.3-Windows-i386 子目錄,裡面有 4_3_x_comp、4_4_x_comp、5_2_x_comp 等目錄,將這些 x_y_z_comp 分別改為 php-x.y.z(比如將目錄 5_2_x_comp 改為 php-5.2.x);
- 確保已經載入了 Zend Extension Manager,如果安裝了 Zend Optimizer 則會自動安裝 Zend Extension Manager,若沒有安裝請先安裝 Zend Optimizer 。或者你可以把 Zend Optimizer 中 ZendExtensionManager.dll 給提取出來,然後手工在 php.ini 中添加一行:
zend_extension_ts=”C:Program FilesZendZendOptimizerZendExtensionManager.dll”
其中 ZendExtensionManager.dll 的位置請根據你的實際情況填寫;
-
在 Web Server 的 php.ini 添加下面幾行:
zend_extension_manager.debug_server_ts="C:Program FilesZendZendDebugger-5.2.3-Windows-i386″(這個目錄一定要和Zend Optimizer 在同一個目錄要不然就無法載入)
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.0/24,192.168.1.0/24
zend_debugger.allow_tunnel=127.0.0.1/32
zend_extension_manager.debug_server_ts 的值請根據你的實際情況填寫,就是 php-x.y.z 的父目錄。
-
把 ZendDebugger-5.2.3-Windows-i386 目錄下的 dummy.php 複製到你的 Web 網站根目錄。
-
重啟你的 Web Server,OK!
簡單總結一下:Zend Studio 的遠端偵錯是由 ZendStudioServer 組件(ZendDebuger.dll)提供的。本質上這是一個 Zend 擴充,因此你只要能把這個 Zend 擴充啟用就可以了。只是 Zend 公司出品的 Zend 擴充只能由那個 Zend Extension Manager 負責載入,所以我們才需要做一些額外的步驟,否則只需簡單地加一行 zend_extension_ts = xxxxxx 而已。
完。
後記:修改php.ini
[Zend]
zend_extension_manager.optimizer_ts="d:apmZendZendOptimizer-3.3.0libOptimizer-3.3.0"
zend_extension_ts="d:apmZendZendOptimizer-3.3.0libZendExtensionManager.dll"
zend_extension_manager.debug_server_ts="D:APMZen
<