netbeans工具使用xdebug断点调试php源码

对有有经验的程序员,使用echo、print_r()、print_f()、var_dump()等函数足以调试php代码,若是须要在IDE工具中使用断点调试,xdebug就是一个很是好的php调试工具。对于不熟悉的代码,能够用Xdebug一步一步的查看请求过程和代码执行过程。php

准备工做
本地部署的server环境,推荐用phpStudy(内置xdebug),开启php扩展就能够了,不用单独下载xdebug。(下载与php版本对应的xdebug:http://www.xdebug.org)html


配置如下三处
1、配置php.ini,需注意是不是使用集成环境。找到相应的php.ini,例以下边是phpStudy的php5.3的php.ini,其中黑色部分是系统默认的,红色是手动添加的。nginx

[XDebug]
xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug"
xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug"
zend_extension="D:\phpStudy\php\php-5.6.27-nts\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_mode=req
; 注意,remote_host的值若是填写localhost不能用,则填写127.0.0.1
xdebug.remote_host=127.0.0.1
; 注意,端口和idekey要与netbeans中配置同样
xdebug.remote_port=9001
xdebug.idekey=netbeans-xdebug

 

2、重启apache服务器,查看phpinfo()里边是否有xdebug,记录下idekey(个人是netbeans-xdebug)。程序员


这一步很是重要,由于坑就在这。。。
若是使用NetBeans调试php时,一直提示“等待NetBeans链接xdebug”,就要使用命令行查看已经加载的模块,查看xdebug是否正确加载。
在命令行下输入:php -mapache

当提示:PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0,意思就是xdebug必须加载到zend modules的扩展中。
extension意为基于php引擎的扩展,zend_extension意为基于zend引擎的扩展,因此正确的方法是设置php.ini配置文件:zend_extension=php_xdebug-2.4.1-7.0-vc14-nts.dll。若是使用phpStudy,启用xdebug扩展的时候,php.ini配置文件会自动增长这个配置。
在php.ini 中还要设置:output_buffering = Off
  
3、配置NetBeans
在NetBeans的 工具-选项-php 中配置(NetBeans版本8.2)浏览器

  1. 工具-选项-php-常规,php5解释器选择php.exe路径(例如:D:\phpStudy\php\php-5.6.27-nts\php.exe)
  2. 工具-选项-php-调试器端口(9001,和上边php.ini保持一致),会话ID:netbeans-xdebug(和上边php.ini中的xdebug.idekey保持一致)    

  

在这里面也有个坑,就是调试器端口,网上通常都是9000,可是有没有考虑使用Nginx的状况,在用nginx做为服务器代理的时候,nginx通常使用的就是9000端口!这就是为何咱们在配置php的xdebug时候使用9001端口。
        php.ini中的端口和idekey要与NetBeans中的“调试器端口”和“会话ID”保持一致,否则一样提示:“等待NetBeans链接xdebug”!
服务器

4、配置好了以后,重启下netbeans,再开始调试。
  配置都保存了以后,仍是链接失败的话,就重启一下netbeans吧。不少都知道,修改了PHP.INI要重启服务器。可是没想过netbeans的有些配置改了以后,也要重启才能生效
ide

5、开始调试
  打开项目(现有项目,无需新建项目),而后选择 菜单-调试-调试项目,通常会在默认浏览器中弹出http://localhost/index.php?XDEBUG_SESSION_START=netbeans-xdebug,后边红色参数是xdebug参数,必需要有。  
  !!!重点!!!若是想单独调试某个url页面,在页面后面加上这个参数?XDEBUG_SESSION_START=netbeans-xdebug或者& XDEBUG_SESSION_START=netbeans-xdebug,而后打开就能开始调试了。函数

 

参考文章:
NetBeans配置Xdebug 远程调试PHP (http://blog.csdn.net/21aspnet/article/details/47756651)
关于netbeans断点调试php的问题 (https://www.oschina.net/question/232352_2209537)
在 NetBeans IDE 中调试 PHP 源代码 (https://netbeans.org/kb/docs/php/debugging_zh_CN.html)
使用netbeans进行PHP团队开发和基于xdebug进行多人远程调试 (http://starlight36.com/post/netbeans-use-for-php-team-with-xdebug)
php断点调试工具--NetBeans+Xdebug调试php方法 (http://www.cnblogs.com/feichengwulai/articles/6252039.html)工具

 

版权声明:本文采用署名-非商业性使用-相同方式共享(CC BY-NC-SA 3.0 CN)国际许可协议进行许可,转载请注明做者及出处。
本文标题:netbeans工具使用xdebug断点调试php源码
本文连接:http://www.cnblogs.com/sochishun/p/7455032.html
本文做者:SoChishun (邮箱:14507247#qq.com | 博客:http://www.cnblogs.com/sochishun/)发表日期:2017年8月30日

相关文章
相关标签/搜索