• netbeans-xdebug 断点调试php


    来自NetBeans官网的帮助文档: 

    https://netbeans.org/kb/docs/php/debugging_zh_CN.html

    但具体问题,我们还是要说下

    准备工作

    本地部署的server环境

    下载与php版本对应的xdebug http://www.xdebug.org

    配置php

    下载xdebug后,在php.ini 中配置xdebug

    zend_extension=php_xdebug-2.4.1-7.0-vc14-nts.dll
    
    xdebug.remote_port=9001
    xdebug.remote_enable=1
    xdebug.remote_host=127.0.0.1
    xdebug.remote_autostart=1
    xdebug.idekey="netbeans-xdebug"

    这一步非常重要,因为坑就在这,当配置中扩展为如下的配置时,phpinfo 显示是正确的

    extension=php_xdebug-2.4.1-7.0-vc14-nts.dll

    但当我们NetBeans调试php时,一直提示“等待NetBeans连接xdebug

    所以,我们要使用命令行查看已经加载的模块,查看xdebug是否正确加载

     php -m

    当提示:PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0

    意思就是xdebug必须加载到zend modules的扩展中

    extension意为基于php引擎的扩展

    zend_extension意为基于zend引擎的扩展

    所以 正确的方法是

    zend_extension=php_xdebug-2.4.1-7.0-vc14-nts.dll

     在php.ini 中还要设置

    output_buffering = Off

    配置NetBeans

    在NetBeans的 工具-选择-php 中配置  (本人NetBeans版本8.0.2)

    在这里面也有个

    就是调试器端口, 网上一般都是9000,但是有没有考虑用Nginx的感受,在用nginx作为服务器代理的时候,nginx一般使用的就是9000

    server {
            listen       80;
            server_name  web.com;
            root   "F:/web";
            location / {
                index  index.html index.htm index.php;
                autoindex  on;
                if (!-e $request_filename){
                    rewrite ^/(.*) /index.php?r=$1 last;
                }
            }
            location ~ .php(.*)$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_param  PATH_INFO  $fastcgi_path_info;
                fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
                include        fastcgi_params;
            }
    }

    这就是为什么我们在配置php的xdebug时候使用9001端口, (php.ini 中的端口要与NetBeans中的调试器端口一致)

    会话ID 与 xdebug.idekey 保持一致

    不然同样提示:等待NetBeans连接xdebug

    NetBeans断点调试php

    这一步应该不用多说,只要用过NetBeans就知道如何调试,要说明一点,按F7 是断点的一步步调试

    参考: 

    http://blog.csdn.net/21aspnet/article/details/47756651

    http://www.cnblogs.com/zhepama/p/3541683.html

  • 相关阅读:
    quora 中有关angular与emberjs的精彩辩论
    迷你MVVM框架 avalonjs 0.94发布
    重写自己,减少判断 ---- 引发的思考
    JSON数据的优化
    记录全局错误
    Bat相关的项目应用
    C#中如何实现json转化时只处理部分属性
    JSON数据的处理中的特殊字符
    C# .net中json字符串和对象之间的转化方法
    VS调试 ---- 监视窗口、即时窗口、输出窗口
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4608015.html
Copyright © 2020-2023  润新知