参考:

http://domainwebcenter.com/?p=936

http://www.sitepoint.com/debugging-and-profiling-php-with-xdebug/

环境:

Windows 7

IIS 8 Express

Netbeans 8.1

PHP 5.5.11

Xdebug

Xdebug 的下载安装很简单.

你写一个页面得到 phpinfo() 返回的内容. 把生成的 HTML 源代码拷贝到 Xdebug 给你提供的表单中然后提交, Xdebug 会根据你的 PHP 版本匹配一个对应的 Xdebug .DLL 或者 .SO 让你下载并告诉你应该安装到 PHP 对应的位置, 以及一些基本的配置.

需要注意的是: Xdebug 与其他的 zend 插件不兼容. 要去 php.ini 中把其他 zend 插件禁用.

1.

Netbeans 新建PHP项目. 略.

2.

右击项目 -> Properties -> Run Configuration:

  Hostname:192.168.1.101 /* 这是我 ipconfig 得到的本机地址. 当然用 localhost 也行 */

  Port: 21009

-> 点击 OK

另外: 我没有单独下载 PHP 的安装包, 我的 PHP 是 IIS 自带的. 因此在 Netbeans 中 PHP 项目的服务器配置如下:

右击项目 -> Properties -> Run Configuration -> Run As:

  配置为 PHP Build-in Web Server (running on build-in web server) , 也就是 IIS

3.

Tools -> Options -> PHP -> Debugging:

  Debugger Port: 9088 /* php.ini 中的 xdebug.remote_port, 我没有用默认的 9000 因为貌似容易出现被占用的情况. 反正随便用一个不是9000的. */

  Session ID: netbeans-xdebug /* php.ini 中的 xdebug.idekey */

  Stop at First Line: Check

  Show Requested URLs: Check

  其他选项: Unchecked

-> 点击 OK

4.

在 php.ini 中添加如下代码:

 [zend]
zend_extension = "C:\Program Files (x86)\iis express\PHP\v5.5\ext\php_xdebug-2.4.0rc3-5.5-vc11-nts.dll"
xdebug.remote_enable=1
xdebug.remote_host=192.168.1.101
xdebug.remote_port=9088
xdebug.remote_handler="dbgp"
xdebug.idekey="netbeans-xdebug"

注意: xdebug.remote_port 以及 xdebug.idekey 要与 Netbeans PHP Debugging 设置匹配.

这几个选项的含义(摘自参考 Xdebug 的官方文档, 必要的地方我就用自己的话来阐述)

zend_extension: 当然是 xdebug 插件的位置. 也就是你下载的 Xdebug DLL 或者 SO 文件的地址.

xdebug.remote_enable

This switch controls whether Xdebug should try to contact a debug client which is listening on the host and port as set with the settings xdebug.remote_host and xdebug.remote_port. If a connection can not be established the script will just continue as if this setting was 0.

xdebug.remote_host: 你要调试的网站的地址, 根据我的网站的配置, 就是: 192.168.1.101

xdebug.remote_port: IDE (这里是 Netbeans) 监听的端口, 根据Netbeans的配置, 就是: 9088

xdebug.remote_handler

Type: string, Default value: dbgp

Can be either 'php3' which selects the old PHP 3 style debugger output, 'gdb' which enables the GDB like debugger interface or 'dbgp' - the debugger protocol. The DBGp protocol is the only supported protocol.

xdebug.idekey: 总之跟 Netbeans 里面的设置相同即可.

5.

测试.

5.1

测试 Xdebug 是否正确安装

写一个获取 phpinfo() 的页面.

phpinfo.php

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>PHP info</title>
</head>
<body>
<?php phpinfo() ?>
</body>
</html>

在 Netbeans 中选择 Run -> Run Project

在浏览器中打开 phpinfo.php 页面

页面内搜索 xdebug

如果成功安装, 如下, 可以看到 xdebug 的配置信息:

5.2

调试

Netbeans 打开文件 file_fgetc.php

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>file_fgetc</title>
</head>
<body>
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
$c = fgetc($myfile);
echo $c;
}
fclose($myfile);
?>
</body>
</html>

Netbeans -> Debug -> Debug File

(我可能是因为网络还是什么问题, 启动 Debug 的时候 Xdebug 与 Netbeans 要花个几秒钟才能连接上, 显示"Waiting for connection (netbeans-xdebug)", 稍微等几秒钟就连上了)

调试界面如下:

注意在调试PHP页面的时候, 会加上参数: XDEBUG_SESSION_START=netbeans-xdebug

如下:

所以, 如果你用的是, Debug -> Debug Project (而不是 Debug File), 然后从 index.html 找到某个 php 页面链接, 发现该 php 页面没有被调试, 就是因为没有加上XDEBUG_SESSION_START参数, 你手动加上再刷新页面即可. XDEBUG_SESSION_START的值就是 php.ini 中 xdebug.idekey 的值.

NETBEANS + XDEBUG + IIS PHP 代码 调试 DEBUG的更多相关文章

  1. iddea代码调试debug篇

    代码调试debug篇 主要看图,看图一目了然.  断点的设定和eclipse一样,只要点一下就可以,下面是我设定的几个断点,再下面的三个窗口是用来调试代码的,这个和eclipse类似 调试常用的快捷键 ...

  2. Idea_idea代码调试debug篇

    主要看图,看图一目了然. 断点的设定和eclipse一样,只要点一下就可以,下面是我设定的几个断点,再下面的三个窗口是用来调试代码的,这个和eclipse类似 调试常用的快捷键 ? 1 2 3 4 5 ...

  3. idea代码调试debug篇

    主要看图,看图一目了然. 断点的设定和eclipse一样,只要点一下就可以,下面是我设定的几个断点,再下面的三个窗口是用来调试代码的,这个和eclipse类似 调试常用的快捷键 F9          ...

  4. IDEA- idea代码调试debug

    IDEA有很多的快捷键,下面整理Debug的快捷键,方便自己使用!(阅读本篇可能花费您2分钟,需要多的实践练习) F9 resume programe 恢复程序 Alt+F10 show execut ...

  5. NetBeans+Xdebug调试php代码

    本文目录 : Xdebug的工作原理 Xdebug扩展的配置 NetBeans的配置 调试实例 本文小结 参考文档 Xdebug:是PHP的调试器和分析器(Debugger and Profiler ...

  6. NetBeans+Xdebug调试原理

    使用Xdebug的远程调试,Xdebug作为一个嵌入到PHP的程序,扮演着客户端的角色,而IDE则作为服务器.下面的动态图展示了连接建立的过程. 服务端的IP为10.0.1.2, 使用HTTP协议,端 ...

  7. windows7 + iis7 + fastcgi + php5 + netbeans + xdebug 调试 php

    Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况. windows7 + iis7 + fastcgi + php5 + netbe ...

  8. [视频教程] 配置vscode的PHP自动补全提示与使用Xdebug进行远程调试debug

    默认下载安装完的vscode并不能准确提示和检测PHP的语法错误,需要手动指定一下本机的PHP程序路径.按下面的操作配置完后就能在文件保存的时候检测语法有无错误.打开文件->首选项->se ...

  9. NetBeans + Xdebug 调试WordPress

    用NetBeans进行WordPress的相关开发和定制很顺手,配合Xdebug后调试起来也很方便. 详细配置过程如下(本例中Xampp安装目录为D:\xampp): 1: 下载xdebug(版本需匹 ...

随机推荐

  1. mysql主从复制 主主复制 读写分离

    首先是mysql的主从复制很简单 主主复制也就是互相主从最麻烦的最难的就是日志恢复,增量恢复什么的比较复杂 首先如果你不会安装mysql版本最好一样,或者往上的版本,因为mysql是向下兼容 请注意不 ...

  2. 从个人的角度谈谈本次GNTC大会的收获

    GNTC资料:from sdnlab 从个人的角度谈谈本次大会的收获 从本次大会的主题演讲来看,目前SDN.NFV的最前沿已经不再像五年前持观望态度以及探讨,各大运营商.各大厂商已经将SDN.NFV具 ...

  3. PTF 安装及简单测试 Packet Testing Framework

    PTF PTF is a Python based dataplane test framework. It is based on unittest, which is included in th ...

  4. Web 在线文件管理器学习笔记与总结(2)显示文件列表(名称,类型,大小,可读,可写,可执行,创建时间,修改时间,访问时间)

    主要函数: filetype() 判断文件类型 filesize() 得到文件大小(字节) is_readable() 判断文件是否可读 is_writeable() 判断文件是否可写 is_exec ...

  5. ExpandableListView实现子Item的点击事件

    在继承的BaseExpandableListAdapter的ExpandableListView的Adapter中,重写以下方法 @Override public boolean isChildSel ...

  6. 用diss 实现 push动画

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { AAAViewController * aaa = [[AAAVie ...

  7. 详解在bash脚本中如何获取自身路径

    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 这是stac ...

  8. cascading rollback 级联回滚

    Computer Science An Overview _J. Glenn Brookshear _11th Edition To emphasize the delicate nature of ...

  9. ifarm 子 父页面方法如何互调

    1.iframe子页面调用父页面js函数 子页面调用父页面函数只需要写上window.praent就可以了.比如调用a()函数,就写成: 代码如下: window.parent.a(); 子页面取父页 ...

  10. oracle 嵌套表

    --自定义对象 CREATE OR REPLACE TYPE Fas_checksheetinfo_line_obj AS OBJECT(  CSID_ID           VARCHAR2(32 ...