Tuesday, March 31, 2009

ZendStudio 调试环境配置

环境:

*. ubuntu(x86) 8.04
*. php 5.2.4
*. ZendStudio 6.1.1
*. nginx(0.6.34) with fastcgi

步骤:

  1. Zend 下载页下载适用于你的系统和浏览器的Zend Debugger和Browser Toolbar
  2. 参考Zend Debugger 安装文档安装在php环境中集成zend debugger
    • php.ini中的配置
      zend_extension =  /your/env/path/ZendDebugger.so
      zend_debugger.allow_hosts= 127.0.0.1/32 , 127.0.0.1/24
      zend_debugger.connector_port = 10137
      zend_debugger.expose_remotely=allowed_hosts
  3. 安装浏览器工具条(Browser Toolbar)
    • 调试时,需要通过工具条让发送出的http请求包含特定参数
  4. 在Zend Studio Windows - Preferences - php- Debug - Installd Debugger 中检查client host/ip地址(127.0.0.1), debugger Port(10137)
  5. 重启fastcgi进程产生器. ($sudo /etc/init.d/php-fastcgi restart )
  6. 在Zend Studio run- Debug Configurations -PHP Web Page 下新建一个项目,进行适当配置后点击 Test Debugger.看是能够探测到Zend Debugger.
    • 如不成功,检查php.ini中的配置,并参考下文Tips章节.
  7. 在程序中打上断点.
  8. 点击浏览器 Zend 工具条 Debug右边的按钮,选中'All page on this site' (也可根据情况,只调试post请求).
  9. 尝试用浏览器触发前一步骤设置的断点.

Tips:

  • 可以用phpinfo(),查看ZendDebugger的安装情况.
  • 检查xdebug是否有安装,如果有安装会和zend debugger冲突. 卸载xdebug后还需注释掉 /etc/php5/conf.d/xdebug.ini中的内容
    • 我这里冲突的情况是,Zend studio 检测不到Debugger.并且访问任何php页面时报 "Debugger compile handler overriden, cannot continue".

参考链接:

TODO:

  • 解决当前环境调试时无法设置不在第一行停住(Break at First Line). (貌似要hack ff扩展 )

No comments: