Windows下PHP+XDebug+PhpStorm 配置本地调节和测量检验情况

本文主要介绍怎么样在服务器上用VIM +
XDebug调节和测量试验PHP程序,近期就算有成都百货上千介绍怎么样用Eclipse +
XDebug在开采职员专门的学业机上调节和测验PHP的篇章,但对于什么系统的安顿VIM +
XDebug依旧少之甚少的,而且近年来关于VIM设置的小说都用三个比较老的插件。这里最首要介绍贰个新插件DBGPavim,它绝对于老的一对插件有不菲优势。同一时候该插件可周到的用来Python程序的调治。别的VIM

Xdebug提醒调节和测量检验顾客端接口与PHP运维相联系。该章节解释怎么样设置PHP与xdebug,并引入一些顾客端。

【已经有作者发过相通的稿子了,流程不是太详细,这里做个补充吧,也是本人的备忘!】

工具介绍:

  • XDebug相对于Eclipse + XDebug也是有众多优势,将要随笔陈说。

介绍

PHP
开拓的时候,频繁的调理,总是打字与印刷感到功用太低了,能否像编译型语言同样断点调节和测量试验呢?当然能够,只是必要举行部总布置,稍显麻烦。

1. Xdebug

Xdebug是三个开放源代码的PHP程序调节和测量检验器(即四个Debug工具卡塔尔,卓殊刚劲,它能够用来追踪,调试和深入分析PHP程序的运行意况。Xdebug今后的最新版本是Xdebug
2.1.0, 下载页面是

5.2 VC6 (32 bit卡塔尔国 下载,文件名是php_xdebug-2.1.0-5.2-vc6.dll:

金沙国际 网址js7779 1

落到实处原理

金沙国际 网址js7779 2

DBGp是调节和测量试验器后台和调试器分界面通讯的一种契约,用于两种脚本语言的调节和测量检验。XDebug是用于调节和测量试验PHP的DBGp完成。VIM要和XDebug互通,完成PHP的调解,须要可以通晓DBGp合同,并能发送DBGp指令。DBGPavim正是这么三个插件,它使VIM能够承担DBGp伏乞,并发送DBGp指令,以完成调度目标。DBGPavim的名字源于DBGp@VIM。

ActiveState提供了用于调节和测量检验Python/Ruby的DBGp完成Komodo Remote Debugging
Package,前边有一节将讲到如何使它和VIM互通,以调治Python。顾客将能就那样类推出什么调节和测验ruby/nodejs等脚本语言。

Xdebug的长间距调节和测量检验器允许你检查数据布局,交互作用式地穿过和调试你的代码。该左券已经开放,名字为DBGp。该公约在xdebug第22中学落到实处,并代替旧版GDB雷同公约并不再扶助。

一、计划工具

2. Eclipse

Eclipse
是一个吐放源代码的、基于Java的可扩充开辟平台。就其本人来讲,它只是三个框架和一组服务,用于通过插件组件创设开拓条件。使用它,可感到大家的PHP开垦推动众多便于,软件可在其官方网址下载。

 

配置XDebug

  1. 设置XDebug能够参照
  2. 编辑php.ini,到场以下两行:

    zend_extension=/path/to/xdebug.so
     xdebug.remote_enable=1
    
  3. 编写制定你的httpd.conf,参加以下行:

     php_value xdebug.remote_autostart 1
    

假定有八个开垦人士相同的时候供给调弄收拾贰分裂的VirtualHost,能够在你的VirtualHost段中参预以下行:

 php_value xdebug.remote_port 9009

注:这里的9009正是VIM作为DBGp服务器应当监听的端口,不相同的开拓职员在分化的VirtualHost中用各自分化的端口号。这么些端口号和下一节提到的dbgPavimPort要一致。不加这一行,私下认可的端口号是9000。
最终可由此phpinfo.php检查你的XDebug配置是或不是准确,你不能够否够见到以下那一个行的值如下(主借使前两列):

xdebug.remote_autostart  On  Off
 xdebug.remote_enable   On  On
 xdebug.remote_handler  dbgp    dbgp
 xdebug.remote_host 127.0.0.1   127.0.0.1
 xdebug.remote_port 9009    9000

phpinfo.php文件内容如下:

<?php
     phpinfo();
 ?>

客户端

  1. Chrome 浏览器
  2. Xdebug (Chrome 插件)
  3. Postman (Chrome 插件)
  4. PHP 集成开拓条件(如:phpStudy、wamp等)
  5. php_xdebug.dll 扩展
  6. PhpStorm IDE

设置与铺排:

配置VIM + DBGPavim

DBGPavim插件自身是用Python实现的,所以须求你的VIM协助Python
2.7。张开你的VIM,输入指令

:version

万一能看到“+python”,表明你的VIM是扶助Python的。
借使见到的是“-python”,表达你的VIM不帮助Python,你能够按如下步骤编写翻译自个儿的VIM:

  1. 安装Python 2.7
  2. export path=/path/to/python2.7/bin:$PATH
  3. 用以下命令编写翻译VIM:

 ./configure --prefix=/opt/vim --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config
 make
 make install

注:这里的/usr/lib/python2.7/config决意于你把Python2.7装置到怎么岗位。

从这里或者这里下载DBGPavim,放到你的~/.vim目录下,并编写的您的~/.vimrc,参预以下两行:

let g:dbgPavimPort = 9009
let g:dbgPavimBreakAtEntry = 0

注:这里的9009和上一节的9009要平等,借使上一节未有配备xdebug.remote_port,这里也无需配备,因为它们都会使用暗中认可的9000。
dbgPavimBreakAtEntry=0告诉VIM不在入口处停下,那样只会在断点处停下。

您能够重复启航VIM,按F5检查你的DBGPavim配置是不是科学。假使您布置成功的话,你会做VIM窗口的右下角看见提醒消息如下:

bap-LISN-9009

它象征VIM这段时间正值监听9009端口,bap说明它只会在断点处停下,别的提醒消息格式如下:

<bae|bap>-<LISN|PENDn|CONN|CLSD>

断点状态

bae Break At Entry,在入口处停下
bap Break only At breakPoints,只在断点处停下

调节和测量试验器状态

LISN 调试器已启动,正处于监听状态。
PEND-n  调试器已捕捉到连接请求,可以按F5进入调试模式了。
CONN    VIM正处于调试模式中。
CLSD    调试器已停止。

Xdebug2捆绑了叁个行使DBGp合同轻便命令行工具。还应该有一点任何客商端都做得很好(无需付费或购销的)。

二、服务器配置

1. 安装Xdebug

Eclipse的安装就隐蔽了。Xdebug安装的办法轻易,首先将下载到的文书重命名为php_xdebug.dll
放置到PHP的ext/目录下,然后匡正php.ini文件,在文件末尾加上下列几行:

[Xdebug]
; 钦命xdebug 扩张文件的岗位(路线请依照本人的意况做调解卡塔尔
zend_extension_ts = “F:/library/php_金沙国际 网址js7779,xdebug-2.1.0-5.2-vc6.dll”
; 启用xdebug 远程调节和测量检验
xdebug.remote_enable = 1
; 以下xdebug 调节和测量检验选项实际上是暗中同意值
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_mode = req
xdebug.remote_handler = dbgp

zend_zend_extension_ts中的ts表示线程安全,即使您的PHP并非线程安全请写成zend_extension。完整的配备项及表明见

保留php.ini后重启服务器,查看phpinfo(卡塔尔(قطر‎的出口,若在页面上能看出下边包车型大巴镜头则设置成功:

金沙国际 网址js7779 3

在Apache蒙受下调节和测量试验PHP

  1. 今昔确认配置不错后,能够用VIM展开你须求调护医治的公文,跳到您须求调弄收拾的行,按F10设置当前进为断点,并按F5运维调节和测量试验器。
  2. 用浏览器访谈会调用相应PHP文件的UENVISIONL,你会看见VIM状态栏里的的提醒新闻产生:

     bap-PEND-1
    

  1. 它告诉你早就有多个老是被截留,能够按F5始发调和了。金沙国际 网址js7779 4
  2. 按F5步向调节和测验形式,你拜候到VIM窗口被分为三部分:左上为源码窗口,右上为变量查看窗口,下方为调用仓库窗口。金沙国际 网址js7779 5在源码窗口里,把光标定位到某二个变量上边按F12,在变量查看窗口就能够见到该变量的值,假诺该变量不是总结变量,其成员也会显示出来。如若该变量的某部成员仍不是轻便变量,该行前边会现出三个加号,在该行按回车键,该成员的值将被接二连三进行。如若你想从来查看有些变量的成员变量,能够按v切换成visual情势,选中该成员再按F12,比如$this->login。在仓库窗口,当你在某一行按回车,将跳到该层。最上边一行是最底部,最下边一行是最顶层。切换调用旅社的层系,能够帮助你查看各类档次的变量,举个例子有个别全局变量唯有在最顶层技巧看到。对于源码中绝非出现的变量,你可以由此命令:Pg来查阅,比方:

      g $this->memberShip
    

  1. 你能够起来你的调解了,任何时候按F1可调出扶植窗口,再度F1就停业支持窗口。金沙国际 网址js7779 6
  • Dev-PHP (IDE: Windows)
  • Eclipse plugin (IDE).
  • Emacs plugin (Editor
    Plugin).
  • KDevelop (IDE: Linux (KDE); Open
    Source).
  • ActiveState’s Komodo (IDE:
    Windows, Linux, Mac; Commercial).
  • MacGDBP (Standalone
    client for Mac OS X; Free)
  • NetBeans (IDE: Windows, Linux, Mac
    OS X and Solaris).
  • Notepad++ plugin (Editor:
    Windows).
  • WaterProof’s PHPEdit (IDE,
    from version 2.10: Windows; Commercial).
  • PHPEclipse (Editor Plugin).
  • Devsense’s PHP Tools for Visual
    Studio
     (MS Visual
    Studio Plugin; Commercial).
  • JetBrain’s PhpStorm (IDE;
    Commercial).
  • Protoeditor (Editor:
    Linux).
  • pugdebug (Standalone
    client for Linux, Windows and Mac OS      X; Open Source).
  • VIM plugin (Editor
    Plugin).
  • jcx      software’s VS.Php (MS Visual
    Studio Plugin; Commercial).
  • Xdebug Chrome
    App
     (Chrome
    Application; Open
    Source)
  • XDebugClient (Standalone
    client for Windows).
  1. 安装 php_xdebug 增加后,php.ini 配置 XDebug
    参数,目录参数配置成温馨条件的,其余参数说明机关百度或谷歌(Google卡塔尔国

2. 在Eclipse中配置debug选项

本人用的是Eclipse for PHP Developers Helios,其余的本子相近。首先在Window
-> Preferences 窗口的侧面选取PHP -> Debug(如下图State of Qatar,在窗口左边的PHP
Debugger这一项中选取XDebug,这几个选项的左侧有个Configure链接,点进入能够对XDebug举办安装,请确认保证XDebug使用的端口号与php.ini文件中钦命的同一(通常为9000卡塔尔,上边两项为设置web服务器以至php解释程序,再上边的Break
at first line表示调节和测验起来后在第1行断开:

金沙国际 网址js7779 7

 

调治将养命令行运营的PHP程序

倘让你要求调护诊治命令行运行的PHP程序,也亟需保险PHP程序端的装置是不易的。那些设置能够像后面肖似在php.ini中设定,也能够透过命令行参数来设定。举例:

php -dxdebug.remote_autostart=1 -dxdebug.remote_port=9009 test.php

借使您的命令行使用的ini和apache中php5_module使用的ini是一律的(经常情状是那样的),你无需在参数中再来做这几个设置。但倘令你在ini中的设置是坐落于有个别virtualhost段里,你仍旧须要增添这一个设置。
你能够经过命令行:

php --ini

来查看你的通令行用的是哪位ini。

继而你能够使用命令:

php -r "phpinfo();"|grep xdebug.remote_

来检查你的XDebug设置。

骨干步骤如下:

  1. 用VIM张开你供给调理的PHP文件,F10设置断点,F5运行调节和测量检验监听。
  2. 从命令行运维php程序如上。
  3. 再次回到你的VIM窗口,将见到提醒消息为PEND-1。
  4. 按F5步入调节和测量试验方式。

DBGPavim提供三个:Dp命令简化命令路程序的调治。只需展开你的PHP文件,输入指令:Dp就可以。

用以调试的简易命令行工具绑定于xdebug所在的 debugclient 目录中。

程序调节和测量试验:

设置好之后便可对程序举行调解了,点击工具上的虫子 -> Debug
As,这里能够筛选以web页面包车型客车花样或者PHP脚本的款式开展调治(如下图):

金沙国际 网址js7779 8

得手的话当前专门的学问区视图会切换为PHP
Debug,然后程序会在第1行断开,接着就能够张开单步调节和测量检验了(如下图卡塔尔,调节和测量试验的措施就非常的少说了,本身查找,简单来讲十分福利:

金沙国际 网址js7779 9

版权表明:本文为博主原创小说,未经博主允许不得转发。


调试Python程序

前方说过VIM +
DBGPavim作为DBGp契约的服务器,能够与XDebug同盟职业,也能够与ActiveState提供的Komodo
Python Remote Debugging
Client合作工作,达成Python程序的调治,具体步骤如下:

  1. 从这里下载安装Komodo
    Python Remote Debugging
    Client,把解压后的bin目录加到你的PATH路线中,注意bin目录下的pydbgp文件。
  2. 用VIM张开你须要调理的Python文件,F10安装断点,F5开发银行调节和测验监听。
  3. 透过pydbgp运转你的Python程序,如

     pydbgp -d 127.0.0.1:9009 test.py
    
    1. 注:这里的9009端口就一定于地点为PHP调节和测量试验时设置的xdebug.remote_port,供给和dbgPavimPort保持一致。
    2. 归来你的VIM窗口,将见到提醒消息为PEND-1。
    3. 按F5跻身调节和测验形式。

    上面包车型客车:Dp命令同样适用于Python调节和测验,下图为Windows 7下用GVIM +
    pydbgp调节和测验Python的截图。 金沙国际 网址js7779 10

    ### VIM + DBGPavim相对于Eclipse + XDebug的优势

    大多数服务器不会运转XServer,不可能在服务器上运营Eclipse。借使在开辟人士职业机上运转Eclipse +
    XDebug,就一定于把DBGp服务器在干活机上运营,你需求安装路线映射,也正是HTTP
    Server试行的一份代码在服务器上,Eclipse调节和测量检验时张开的是一份代码,在劳作机上,要保证这两份代码能对应上供给映射路线。当程序层面十分的小时,难题一点都不大,当程序层面大时,会相比较麻烦,何况要保险代码的一路,不然会串行。

    而且能够受到网络防火墙之类的难题。

    VIM +
    DBGPavim也是永葆远程调节和测量检验的,但同样幸免不了路线映射的装置,如下:

    let g:dbgPavimPathMap = [['D:/works/php','/var/www'],]
    

初叶调节和测量试验器

[XDebug]zend_extension="D:\phpStudy\php70n\ext\php_xdebug.dll"xdebug.profiler_append = 0xdebug.profiler_enable = 1xdebug.profiler_enable_trigger = 0xdebug.profiler_output_dir ="D:\phpStudy\tmp\xdebug"xdebug.trace_output_dir ="D:\phpStudy\tmp\xdebug"xdebug.profiler_output_name = "cache.out.%t-%s"xdebug.remote_enable = 1xdebug.remote_handler = "dbgp"xdebug.remote_mode = "req"xdebug.remote_host = "127.0.0.1"xdebug.remote_port = 9010xdebug.idekey= PHPSTROM

DBGPavim相对于别的插件的优势

DBGPavim源于VIM开始的一段时代的二个DBGp插件

DBGPavim会监听全体来自DBGp客户端如XDebug、pydbgp的DBGp连接,不像此外插件只好捕获第多少个两次三番。这对于广泛的WEB程序是必得的,因为即日的贰次网页加载常常会接触多个HTTP恳求,而作者辈须求调治将养的或是出自内部的其余贰个。
同期DBGPavim支持只在断点处停下,别的的插件都以在入口处停下,要求程序员一步步追踪进去。那省了开荒人士十分的大的分神,何况防止失误后一回次的重启调节和测量检验。

深信您也早已意识,DBGPavim能够与Windows下的GVIM一同干活,何况专业的很好。

要使xdebug调节和测量检验器生效,你供给在php.ini配置部分装置。那类设置有xdebug.remote_enable开启调节和测量检验器,xdebug.remote_host和xdebug.remote_port配置IP地址和端口以便调节和测试器连接。还会有xdebug.remote_connect_back设置用于开拓服务器分享给多名开垦者使用。

  1. 安排本地站点域名示例域名: e.com,绑定 host。

DBGPavim的详尽使用仿效

VIM normal模式下

F5   启动调试监听,或者有可调试连接时进入调试模式。
F6  停止调试监听。
F8  切换dbgPavimBreakAtEntry的值,按这个键你可以看到状态栏提示信息在bae和bap之间切换,即是否在PHP程序入口处停下。
F10 在当前行设置或删除断点,在调试模式下同样适用。

调节和测量试验格局下

F1   打开或关闭帮助窗口
F2  单步进入
F3  单步跳过
F4  单步退出
F5  继续执行直到下一个断点,如果后续没有断点就退出调试模式。
F6  停止调试,这个按键就导致VIM退出调试模式,并且停止调试监听。
F7  调试时执行php语句,按下F7后,用户可在变量查看窗口输入php语句,回车后执行。
F9  最大化某个子窗口,或者重置窗口布局。
F11 查看当前执行环境下的所有变量的值,在不同的堆栈层次,会有不同的结果。
F12 查看光标下的变量的值。

如上效用键为私下认可配置,你只要习贯好些个浏览器的开关设置,能够把下部的代码参与你的.vimrc中:

let g:dbgPavimKeyRun = '<F8>'
let g:dbgPavimKeyStepOver = '<F10>'
let g:dbgPavimKeyStepInto = '<F11>'
let g:dbgPavimKeyStepOut = '<F12>'
let g:dbgPavimKeyPropertyGet = '<F3>'
let g:dbgPavimKeyContextGet = '<F4>'
let g:dbgPavimKeyToggleBp = '<F9>'
let g:dbgPavimKeyToggleBae = '<F5>'
let g:dbgPavimKeyRelayout = '<F2>'

VIM命令,全部命令唯有首先个假名字为大写。

:Bl  列出所有断点
:Bp 与F10功能相同  p   这个命令可用于快速调试当前文件,它实现了如下功能:

    1. 检查命令行下XDebug/pydbgp的设置是否正确
    2. 启动调试器监听
    3. 用php/pydbgp执行当前文件
  g <longfoo> 查看较长变量的值,比如:Pg $this->savings[3]
:Up 调用堆栈往上一级  n  调用堆栈往下一级
:Wc [$foo]  打开/关闭对变量$foo的监视。如果没有参数,就监视当前执行环境下的所有变量。
:We <foo> 打开/关闭对语句foo的监视,即每一单步后自动执行foo语句。
:Wl 列出所有被监视的变量或语句。
:Children <n> 对于数组默认显示前1024个元素,这个命令可以修改。  epth <n> 对于复杂变量,默认只显示下一层成员,这个命令可以设置限制多层。
:Length <n>   对于字符串变量,默认执行显示前1024个字符,这个命令可以设置显示长度。

设若您供给调节和测量检验器在错误产生时(PHP错误或exception)发起一会话,你也急需转移xdebug.remot_mode设置。该装置允许值是”req”(私下认可),高度器会在剧本一开首就发起一会话,或”jit”值让会话值在错误发生时生成。

盘活全部那个设置后,xdebug仍没能在本子一运维时自动开首调护医疗会话。你有多个艺术激活xdebug调节和测量检验器:

127.0.0.1 e.com

1、        当在指令行中运行脚本,你需求安装以蒙受变量:

金沙国际 网址js7779 11示例:e.com

export XDEBUG_CONFIG="idekey=session_name"

php myscript.php

三、Xdebug 浏览器插件配置

 

  1. IDE Key 配置为 PhpStorm

    金沙国际 网址js7779 12Xdebug
    插件配置

  2. Xdebug 插件开启调节和测验

    金沙国际 网址js7779 13Xdebug
    开启调节和测验

您也能配备 xdebug.remote_host, xdebug.remote_port, xdebug.remote_mode 和xdebug.remote_handler 为相符的境况变量只要在隔断这个值在一个空中内:

四、PhpStorm IDE配置

export XDEBUG_CONFIG="idekey=session_name remote_host=localhost profiler_enable=1"
  1. 安装 PHP 版本,选拔本地蒙受的 php 版本。

    金沙国际 网址js7779 14PHP
    版本设置

  2. XDebug 端口设置,这里设置成 php.ini 中 xdebug 配置的端口

    金沙国际 网址js7779 15XDebug
    端口设置

  3. DBGp proxy 设置

    金沙国际 网址js7779 16DBGp
    代理设置

  4. Servers 服务配置Servers 配置,点 +
    号新扩大布置。注意勾选路线相配,并安顿项目所在地面相对路线。

    金沙国际 网址js7779 17Servers
    配置

  5. 编写制定运营/调节和测量试验配置

    金沙国际 网址js7779 18Run/Debug
    编辑

    添加 Run/Debug 配置

    金沙国际 网址js7779 19添加
    Run/Debug 配置

  6. PhpStorm
    展开央浼监听开启须求监听![_]F9{FRS@L_8VIGE4KD@_9P.png]()

怀有安装你都能在php.ini通过XDEBUG_CONFIG设置。

到此有所配置已经产生。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

CopyRight © 2015-2020 金沙中心城 All Rights Reserved.
网站地图xml地图