• PHP断点调试工具Xdebug的安装


    Xdebug是一个PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。其实调试PHP还有其他工具比如Zend Debugger,但zend官方不是免费发布的,后来更新为zend Server也是收费版。而Xdebug是完全免费的并且功能也不差。其实xdebug可以看做PHP的扩展,如果环境中没有集成需要先在官网下载然后安装,下载地址:https://xdebug.org/download.php。下面说一下安装方式:

    1.在windows下的安装方式,在windows安装时下载需要注意除了下载的扩展和PHP版本一致外还应该查看一下PHP是TS(Thread-Safety)即线程安全还是NTS(None-Thread Safe)即非线程安全,可以通过查看phpinfo内容确定是哪一种。找到phpinfo中的PHP Extension Build这一项,如下图:

    下载完成后将dll文件放到php的安装目录下,为了统一可以放到ext目录下,也可以重命名一下,然后再php.ini中加入如下代码(具体可根据调试场景进行修改)

    [Xdebug]
    zend_extension ="扩展的绝对路径"
    xdebug.collect_params = 1
    xdebug.collect_return = 1
    xdebug.auto_trace = 0
    xdebug.profiler_enable = 0
    xdebug.max_nesting_level = 1000000
    xdebug.remote_enable = 1
    xdebug.remote_host = localhost
    xdebug.remote_port = 9999
    xdebug.remote_handler = dbgp
    xdebug.idekey = netbeans-xdebug

    以上代码主要适合本地调试的场景,如果是局域网内多人远程调试可以添加xdebug.remote_connect_back =1或者根据具体的调试场景进行修改。重启apache或者php-fpm之后使配置文件生效可以再phpinfo中查看到如下图所示:

    2.linux下安装xdebug的方式

    首先也需要在官网下载xdebug,下载source即可,然后解压后进入解压后的目录然后按如下步骤执行:

    /PHP的安装目录/bin/phpize
    
    ./configure --with-php-config=/PHP的安装目录/bin/php-config
    
    make
    
    make install

    执行成功后会显示一个带extensions的目录,记下这个目录,这个目录中会包含xdebug.so,然后和windows一样修改php.ini加入相同代码(除了扩展目录和文件名不同),重启php-fpm即可生效。

    特别提示:不管是Windows还是Linux安装xdebug都需要以zend扩展的形式安装,如果提示XDEBUG NOT LOADED AS ZEND EXTENSION即下图所示界面则没有正确安装,需要重新修改配置文件。

    以上配置是xdebug本地调试,其实xdebug也可以设置局域网多人调试或者远程调试的方式。待续....

    转:https://www.liminghulian.com/article/51

    另: 配置其它选项:

    [Xdebug]    
    ;指定Xdebug扩展文件的绝对路径
    zend_extension="C:Appphpphpphp-7.0.12-ntsextphp_xdebug-2.7.0alpha1-7.0-vc14-nts.dll"
    ;最大循环或调试次数,防止死循环
    xdebug.max_nesting_level=50
    ;启用性能检测分析    
    xdebug.profiler_enable=On  
    ;启用代码自动跟踪    
    xdebug.auto_trace=on  
    ;允许收集传递给函数的参数变量    
    xdebug.collect_params=On  
    ;允许收集函数调用的返回值    
    xdebug.collect_return=On  
    ;指定堆栈跟踪文件的存放目录    
    xdebug.trace_output_dir="C:Appphpdebug"  
    ;指定性能分析文件的存放目录    
    xdebug.profiler_output_dir="C:Appphpdebug"
    ;追加
    xdebug.profiler_append=1
    ;指定追踪文件名格式
    ;xdebug.profiler_output_name = "cachegrind.out.%c"  
    xdebug.profiler_output_name = "cachegrind.out.%s"  
    ;远程调试是否开启
    xdebug.remote_enable = On
    ;端口  
    xdebug.remote_port=9000  
    ;远程调试地址
    xdebug.remote_host = 127.0.0.1
    ;数组或对象最大层数 最大可设置1023
    xdebug.var_display_max_depth = 10  
    ;将require,include相关载入的文件名写入追踪文件
    xdebug.collect_includes=1
    ;堆栈追踪
    xdebug.default_enable=1
    ;打印请求方式
    xdebug.dump.SERVER=REQUEST_METHOD
    ;打印GET请求参数
    xdebug.dump.GET=*
    ;打印POST请求参数
    xdebug.dump.POST=*
    ;打印COOKIE
    ;xdebug.dump.COOKIE=*
    ;打印UA
    ;xdebug.dump.SERVER=HTTP_USER_AGENT

    参考:  https://www.cnblogs.com/alex-dong/p/9126904.html

  • 相关阅读:
    2016年开源软件评选(截图备份)
    牛逼的思维方式都是倒逼出来的(摘)
    3-22 多态
    3 -20 类
    3 -19标准库
    3 -16 json序列化
    3 -16 内置方法
    迭代对象 和 迭代器
    3 -14 迭代 和列表 生成器
    3-13 装饰器
  • 原文地址:https://www.cnblogs.com/fps2tao/p/10399185.html
Copyright © 2020-2023  润新知