使用Xdebug调试PHP程序

XDebug是个好东西啊,用来调试PHP程序的,可以和Eclipse配合。

配置步骤:(Windows+Apache+php环境)

1.下载和PHP版本环境相适应的XDebug版本,放置于PHP目录,主要None-ThreadSafe版似乎是用来在CLI方式下使用的,一般不需要

2.修改php.ini文件,参考如下

[Xdebug]
;zend_extension_ts	= "D:\server\php5\ext\php_xdebug-2.0.5-5.3-vc6.dll"
;发现在PHP5.3+Apache(CGI)方式下,似乎必须使用 zend_extension 加载才能成功
zend_extension		= "D:\server\php5\ext\php_xdebug-2.0.5-5.3-vc6-nts.dll"

xdebug.auto_trace		= off		;开启自动跟踪

xdebug.remote_autostart		= off		;开启远程调试自动启动
xdebug.remote_enable		= 1
xdebug.remote_host		= 10.5.184.251
xdebug.remote_port		= 9000
;xdebug.remote_handler		= “dbgp”

xdebug.show_exception_trace	= On		;开启异常跟踪

xdebug.collect_vars		= On		;收集变量
xdebug.collect_return		= On		;收集返回值
xdebug.collect_params		= On		;收集参数

注意:remote_host应该填写远程调试机的地址,而不是PHP服务器的地址,在Xdebug运行方式下,调试工具实际是调试过程的服务端,Xdebug会主动连接指定的remoete_host,从而建立调试通讯。所以要注意调试机的防火墙问题


3.配置调试工具,Eclipse就很好用,具体不说了,摸索下就可以了


4.Apaceh2下的CGI、FastCGI、Module方式都可以正常使用Xdebug

2009-07-07

5.最新发现在PHP5.3+Apache(CGI)方式下,似乎必须使用 zend_extension 加载才能成功,而不是Zend_extension_ts



顺便放个我常用的PHP.ini的设定,你不需要逐个在PHP.INI里查找相应的行,再修改,只有把这些内容附加到PHP.INI文件后面,它会自动覆盖前面设置。

cgi.force_redirect		= 0
cgi.fix_pathinfo		= 1
fastcgi.impersonate		= 1; 

;session.save_handler		= files
;session.save_path		= /tmp
session.use_cookies		= 1
;session.use_only_cookies	= 1

; file_uploads			= On
; upload_tmp_dir		=
; upload_max_filesize		= 2M
; post_max_size			= 8M
; memory_limit			= 8M

; max_execution_time		= 30
; max_input_time		= 60

display_errors			= on
; error_reporting		=  E_ALL
log_errors			= off
; error_log			= d:\server\php5\logs\error.log

; mysql.connect_timeout		= 1
; doc_root			= d:\wwwroot

extension_dir	= "D:\server\php5\ext"

extension	= php_mysql.dll
extension	= php_mysqli.dll

;extension	= php_pdo.dll
extension	= php_pdo_mysql.dll

extension	= php_mbstring.dll
extension	= php_mcrypt.dll
extension	= php_gd2.dll
extension	= php_bz2.dll
extension	= php_curl.dll

发表评论