以前每當一個 Zend Studio 的新版本發布時都會同時發布一個新版的 Zend Studio Server 組件,這個組件可以讓我們很方便地進行遠程調試。但是自從 Zend 發布了 Zend Platform 以後他們就不再更新 Zend Studio Server 組件了。這就導致我們只能遠程調試 PHP 5.1.x 的環境,而不能調試 PHP 5.2.x。要想調試 PHP 5.2.x 只能裝一個龐大的 Zend Platform。:(
因此我一直在找一個“輕量級”的解決方案。近日在逛 Zend.com 時發現了一個好東西:Zend Studio Web Debugger,直覺告訴我,這就是我想要的。果不其然,今天試驗成功!
下面就說一說我的試驗步驟:
到這裡下載ZendDebugger-5.2.3-Windows-i386.zip,然後將其解壓到某一目錄,比如:C:\Program Files\Zend,這就會在該目錄裡面新建一個 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 中 Zend Extension Manager.dll 給提取出來,然後手工在 php.ini 中添加一行:
zend_extension_ts="C:\Program Files\Zend\ZendOptimizer\ZendExtensionManager.dll"
其中 Zend Extension Manager.dll 的位置請根據你的實際情況填寫;
在 Web Server 的 php.ini 添加下面幾行:
zend_extension_manager.debug_server_ts="C:\Program Files\Zend\ZendDebugger-5.2.14-Windows-i386"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.0/16
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 而已。