摘要:一直做php开发,有时候遇到一些小的逻辑bug,死活就是调不出来,累人。之前面试的时候被问到用什么调试工具,懵逼……。工作中确认需求有需求一个调试工具,周内调了一整都没调出来,周末整了一上午终于弄好了,记录一下。
一、运行环境
- win7(64bit)
- wamp3.0.6 安装路径:E:\wamp64
- phpStrom9.0
- chrome51.0
二、调试过程
2.1 php安装xdebug扩展
**坑:**php.ini配置文件按道理来说应该是在:E:\wamp64\bin\php\php5.6.25\php.ini这里,但其实不是这个文件,我安装的wam3.0.6如图
从这里打开php.ini,并打开这个文件所在文件夹是:E:\wamp64\bin\apache\apache2.4.23\bin,再看一下这个文件的属性:
是一个软连接,这个文件的实际位置是:E:\wamp64\bin\php\php5.6.25\phpForApache.ini
所以如果找网上的教程要修改php.ini文件的话,就知道要改哪个文件了。
幸运的是,这个版本的wamp自带了xdebug,免去了网上下载xdebug扩展的问题,这里还要注意如果是自己下载并配置php.ini的话,一要注意下载的xdebug的版本号要和自己的php版本号要对应,另外下载的时候,xdebug都可以选择两个版本,线程安全与否版本。
下来就是配置php.ini,我把自己的配置项贴上:
[xdebug]
zend_extension ="E:/wamp64/bin/php/php5.6.25/zend_ext/php_xdebug-2.4.1-5.6-vc11-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey="PHPSTORM"
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="E:/wamp64/tmp"
xdebug.show_local_vars=0
说明其中几项:
- remote_host,remote_port。xdebug貌似是通过本地的这个9000端口来 php 和 xdebug 和 phpStorm通讯调试的,所以这两项很重要
- idekey,这个是与phpStrom里面做标识的,也很重要
配置完成后,在phpinfo()页面可以看到:
说明php xdebug配置完成
2.2 phpStrom设置
直接上截图:
setting里面设置完成,然后开始设置debug
好了,到这里就配置完成了,打开chrome浏览器,在程序里面打上断点,点phpStrom右上角的虫子debug按钮,就打开了chrome浏览器,发现url是这样的:
http://localhost/tpProject/tpTest?XDEBUG_SESSION_START=19163
相当于给访问链接后面带上GET参数,这次xdebug会话的编号,这个编号不用每次调试每次点debug按钮,可以一直用这一个会话Id,需要在url上面带其他url参数也是可以的。
OK,写完啦,手疼……
<完>