以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置

一、前言
        根据网上众多的配置教程,反复配置都没成功。其实配置成功关键与否在于针对不同的软件版本进行相应的配置。授人以鱼不如授之以渔,如果你的软件版本和笔者的不同,那么可以参考我提供的步骤,再结合你实际的版本做相应的调整就可以了。

二、配置环境
        系统版本:Win7
        phpstorm版本: 8.0.3
        Xdebug版本: 2.1.2,PHP 5.3 VC9(32bit)
        Chrome  版本: 46.0.2490.86 m
        WampServer版本: 2.2(PHP 5.3.10, Apache 2.2.21)

三、安装步骤
       1、选择正确的Xdebug版本。
        选择正确的Xdebug版本是决定调试功能安装成功与否的关键。网上大多对如何选择Xdebug版本描述过少,其实这一步做好了,接下来的配置就相对简单很多。那如何选择Xdebug版本呢?
        选择Xdebug版本要从三个角度来决定:
        1)系统是32位还是64位?
        2)php的版本是什么?
        3)你的配置环境是否支持VC6、VC9、VC11?

        以笔者的电脑配置环境为例,我的win7系统是32位,php版本5.3.10,登陆http://xdebug.org/download.php看到符合二者要求的有一大堆(见下图红圈部分):


以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第1张图片

        那么符合配置环境的到底是哪个呢?
        Xdebug.org提供了一个在线测试版本的方法,登陆http://xdebug.org/wizard.php,将你的phpinfo()代码输出的结果,全部复制粘贴到wizard.php的输入框中,点击提交按钮,Xdebug.org会给你合理的版本建议。
        但很遗憾,估计是我的php版本太低,Xdebug.org并未告诉我应该选择哪个版本。这里给出几个选择的建议,供大家参考:
        1)网上有些文章说VC9版本是用于IIS的,VC6是用于apche服务器的。这里根据我的实践,可告诉大家, VC9版本是说Xdebug程序是用VC2008编译的,VC6版本是用VC6编译的,VC11是用 Visual Studio 2012编译的。如果你的电脑是安装了apache, 一般是把PHP作为一个Module load到apache中,那么以apache父进程-多子进程的工作模式,是需要进行线程安全检查的,所以如果是以这种方式执行php,选择ts版本;如果你的电脑使用IIS配置PHP,那么需要选择Non-Thread Safe(NTS)版本。
        2)如果你安装的apache版本在2.2以上,php在5.3以上,建议优先使用VC9或VC11版本;反之,建议优先选择VC6版本。
        根据以上原则,笔者选择的是Xdebug 2.1.2,PHP 5.3 VC9(32bit)版本。

        2、将下载后的xdebug文件复制到正确的目录下。
        下载后的xdebug程序是一个dll文件。 将dll文件拷贝到你的php的ext或zend_ext目录下。我的是拷贝到“zend_ext”文件夹下,如下图所示。对于只有ext文件夹的朋友来说,就可以拷贝到ext文件夹下。  
     
    以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第2张图片

        3、PHP正确安装xdebug扩展。
        找到你的php.ini文件,做如下配置(仅供参考):
        zend_extension = "C:/wamp/bin/php/php5.3.10/zend_ext/php_xdebug-2.1.2-5.3-vc9.dll"
        [xdebug]
        ;是否开启自动跟踪
         xdebug.auto_trace= On  
        ;是否开启异常跟踪
        xdebug.show_exception_trace= On
        ;是否开启远程调试自动启动
        xdebug.remote_autostart= On
        ;是否开启远程调试
        xdebug.remote_enable = On
       ;配置远程调试主机ip
        xdebug_remote_host = "127.0.0.1"
        ;是否开启调试扩展信息
        xdebug.extended_info=On
        ;是否开启调试内容
        xdebug.profiler_enable = On
        ;调试输出路径
        xdebug.profiler_output_dir = "c:/wamp/tmp"
        ;调试插件dbgp
        xdebug.remote_handler = dbgp
        ;远程调试的端口(默认9000)
        xdebug.remote_port = 9000
        ;配置支持调试的ide
        xdebug.idekey = phpStorm
        ;是否收集变量
        xdebug.collect_vars= On
        ;是否收集返回值
        xdebug.collect_return= On
        ;是否收集参数
        xdebug.collect_params= On
        ;跟踪输出路径
        xdebug.trace_output_dir="c:/wamp/tmp"

        这里啰嗦几句,有三处也是极易出错的地方:
        一是要找到正确的php.ini文件进行配置。我电脑上安装的是wamp,后来发现“C:\wamp\bin\apache\Apache2.2.21\bin”和“C:\wamp\bin\php\php5.3.10”两个文件路径下都有php.ini文件,但对于wamp而言,真正起作用的是“apache\Apache2.2.21\bin”路径下的php.ini文件,这点还需要读者留意;
        二是配置“ zend_extension”的时候,注意要加引号,且文件路径是斜杠,而不是反斜杠。当然有人用反斜杠也是可以的,保险起见推荐用斜杠+引号格式;
        三是配置远程调试的端口,请朋友查看是9000的端口是否被别的程序占用。查看方法请见百度经验“ http://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html ”。如果是被别的程序占用,建议改用9001或其他未被占用的端口试试。

        4.验证PHP安装Xdebug扩展是否成功。
        利用phpinfo(),查看输出是否有“xdebug”字样,如下图所示。如果出现了如下图的“xdebug”字样和相应的版本信息,则说明安装成功。如果没有出现“xdebug”,则原因很可能出现xdebug的版本选择错误,笔者之前反复安装没有成功,问题就出自版本的选择上。不知道如何选择版本的,建议读者多试试几个xdebug版本进行测试。

以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第3张图片
        再对比下图红色部分的数据是否与php.ini的xdebug配置数据一致。如果一致则说明配置正确,否则建议进一步核查原因。

以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第4张图片
        
5.PhpStorm配置。
        安装完php的xdebug扩展后,接下来就要在phpstorm上做好配置了。打开“File->"Settings...",进入“Languages&Frameworks->PHP”,进行配置。

以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第5张图片

        "PHP lanuage level:"选择你的php版本,“Interpreter”要选择你的php.exe所在的路径。当出现下图“PHP version:5.3.10”和“Debugger:Xdebug 2.1.2”时,说明你在phpstrom上已经成功配置了Xdebug。如果没有成功安装,"Debugger"会显示"Not installed"。笔者完成前面4步时,选择了正确的php.exe路径,"Debugger"会显示"not installed",无奈笔者先将"PHP executable:"的路径先设置php_xdebug-2.1.2-5.3-vc9.dll所在的路径,后又重新选择php.exe的安装路径,“Not installed”神奇地变成了“Xdebug 2.1.2”。

以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第6张图片

        “PHP->Servers”请参考如下配置。

以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第7张图片
  
      “PHP->Debug”请参考如下红框里的配置。Debug port要和php.ini的Xdebug端口配置一致。

    以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第8张图片

       “PHP->Debug->DBGp Proxy”请参考如下配置。这里DBGp是一种在PHP和xdebug调试器之间传递通信的一种协议。注意要和前面php.ini的xdebug.remote_handler = dbgp、xdebug.idekey = phpStorm保持一致。

    以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第9张图片

       6 .Chrome的Xdebug helper插件配置。
        做到这一步,笔者觉得还是挺繁琐的:D ,不过,Chrome作为php脚本语言的最终输出界面,必须要相应的支持xdebug功能,我们才能真正实现phpstorm调试功能。登陆 http://www.chromein.com/crx_11294.html下 Xdebug helper(1.3.0)插件,在chrome的“设置->扩展程序”下面,拖动下载的后的文件到里面去。如下两图所示。

         以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第10张图片
以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第11张图片
        
  
      成功安装后,会发现打开的页面输入栏里有个小虫子图标,对于我们要进行调试的页面,选择Debug模式,如下图所示。

         以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第12张图片

        7.开始你的调试之旅吧!
        请参照如下设置进行调试。
        以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第13张图片

        8.验证你的phpstorm具备调试功能。
        若发现Debugger窗口下“Frames”和“Variables”都有调试的相关信息,且Step Over、Step Into等按钮都是可用的,那么恭喜你,此时你已成功实现了phpstrome的调试功能了。

以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置_第14张图片

(全文完)

你可能感兴趣的:(网页设计,php)