首页 >后端开发 >php教程 >在 Zend Studio 125 里下断点调试运行 PHP 源代码

在 Zend Studio 125 里下断点调试运行 PHP 源代码

WBOY
WBOY原创
2016-07-29 09:15:081011浏览

本文解决如下问题:在Zend Studio里面下断点然后调试运行(Debug As PHP Web Application),却发现网站正常跑起来了,断点根本就没生效。

断点不生效,主要原因是调试器没有配置好。

其实Zend Studio已经自带了ZendDebugger调试器,并且已经跟内置的PHP CLI环境集成好了。但是要调试我们自己安装的Web server + PHP程序,还得做额外的配置工作。

修改 php.ini,加入 zend_extension 等设置项

在 php.ini 末尾加入以下设置项:

<code>zend_extension = "C:<span>\Program</span> Files<span>\Zend</span><span>\Zend</span> Studio 12.5.1<span>\plugins</span><span>\com</span>.zend.php.debug.debugger.php56.win32_12.5.0.v20150415-1131<span>\resources</span><span>\php</span>56<span>\ZendDebugger</span>.dll"
zend_debugger.allow_hosts = "127.0.0.1"</code>

其中 zend_extension 的值,是 Zend Debugger 插件的全路径文件名,位于 Zend Studio 安装目录内,自行搜索 ZendDebugger.dll 即可找到。
注意这个DLL在Zend安装目录内有两份,一个是针对PHP 5.6的,另一个是针对PHP5.5的,需选择跟自己的PHP安装版本一致的那一份。(Zend官方网站也有提供Zend Debugger单独下载。)

修改完 php.ini 文件并存盘后,请重启PHP(php-cgi、PHP-FPM等,或Web server),确保 php.ini 被重新加载。

注意:ZendDebugger是VC11 NTS版本(Non Thread Safe),必须跟NTS版本的PHP配合使用。也就是说,TS版本的PHP是不能使用ZendDebugger的(加载失败)。参见PHP官方网站关于TS和NTS版本的说明。

在 Web server 的 root 目录内放置 dummy.php

在 Ngninx 文档根目录 html 内创建文件 dummy.php,内容如下:

<code><?php <span>@<span>ini_set(<span>'zend_monitor.enable'</span>, <span>0</span>)</span>;<span>if(@<span>function_exists(<span>'output_cache_disable'</span>)</span>)</span> {
    <span>@<span>output_cache_disable()</span>;</span>
}
<span>if(<span>isset($_GET[<span>'debugger_connect'</span>])</span> && $_GET[<span>'debugger_connect'</span>] == <span>1</span>)</span> {
    <span>if(<span>function_exists(<span>'debugger_connect'</span>)</span>)</span>  {
        <span>debugger_connect()</span>;
        <span>exit()</span>;
    } else {
        echo "No connector is installed.";
    }
}</code>

开始调试

在 Zend Studio 项目管理窗口,鼠标右击 index.php,点击选择菜单 Debug As -> PHP Web Application 并确认,就启动了调试进程。调试器会在第一行PHP代码处中断,也可用快捷键 Ctrl + Shift + B 设置其他断点,F8继续运行,断点处按预期中断运行,就说明上文配置成功啦。

版权声明:本文为博主Liigo原创,未经授权不得转载。

以上就介绍了在 Zend Studio 125 里下断点调试运行 PHP 源代码,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn