zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    「题解」:毛一琛/$cow$ $subsets$
    「题解」:$e$
    「题解」:$d$
    「题解」:$Simple$
    「题解」:$Game$
    「题解」:砖块
    「题解」:天才绅士少女助手克里斯蒂娜
    约瑟夫问题小结
    「题解」:[loj2763][JOI2013]现代豪宅
    20190812
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4608015.html
Copyright © 2011-2022 走看看