折腾了好久这个问题今天终于解决了,分享下经验
在php.ini最后加上
zend_extension="C:\php\ext\php_xdebug-2.0.5-5.3-vc6.dll"(路径要注意,xdebug和php版本要一致)
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost(win7的host文件默认是没有localhost到127.0.0.1的映射的,要自己加)
xdebug.remote_port=9000 (netbeans里调试端口设置的也是9000,注意端口是否被占用)
注意:php.ini里没有其他与zend相关的语句。调试的时候要用IE或者火狐,别用傲游之类的浏览器,不然xdebug连不上
下面讲下php的扩展方法,很重要
extension意为基于php引擎的扩展
zend_extension意为基于zend引擎的扩展
注:php是基于zend引擎的。晕了吧。
不同的扩展安装后,在php.ini里是用extension还是zend_extension,是取决于该扩展,有的扩展可能只能用zend_extension,如xdebug,也有的扩展可以用extension或zend_extension,如mmcache。
注:上面的结论不保证准确。zend_extension加载php扩展时需用全路径,而extension加载时可以用相对extension_dir的路径。
确定可以用zend_extension之后,还有下面几种可能:
根据 PHP 版本,zend_extension 指令可以是以下之一:
zend_extension (non ZTS, non debug build)
zend_extension_ts ( ZTS, non debug build)
zend_extension_debug (non ZTS, debug build)
zend_extension_debug_ts ( ZTS, debug build)
ZTS:ZEND Thread Safety
可通过phpinfo()查看ZTS是否启用,从而决定用
zend_extension还是zend_extension_ts,当然试一下怎么生效也可以。