我的PHP环境是安装在虚拟机中。真机系统用的是windows。那么我要用XDEBUG调试代码,就得用XDEBUG的远程调试功能。

首先要给远程环境中安装XDEBUG扩展,具体方法:http://www.cnblogs.com/mysic/p/5993463.html

在配置XDEBUG之前,需要先了解下XDEBUG的工作模式,尤其是远程debug时的方式,XDEBUG是需要先和开发端建立连接,启动会话,然后通过相互间传递参数来实现的。。XDEBUG远程调试分两种,一种是单用户,一种是多用户。单用户直接和服务器连接,多用户debug涉及到DBGp协议。这里我只记录单用户,多用户以后用到再补充。

服务器端XDEBUG的设置如下(PHP.INI):

//开启远程debug功能
xdebug.remote_enable=1 //开发客户端的IP
xdebug.remote_host="192.168.71.1" //是否自动连接客户端并调试。开启后,当用PHPSTORM调试时不需要先初始化连接XDEBUG服务端(绿虫子按钮)
只要在提交的字符串中包含XDEBUG_SESSION_START的参数并在代码行中设置了断点就会自动开始debug
xdebug.remote_autostart=1 //开发客户端设置的用于连接服务端的端口
xdebug.remote_port=9090 //XDEBUG日志
xdebug.remote_log="/xxxx/xxx/xdebug_remote_log"

服务器端设置好之后,需要设置开发客户端(PHPSTORM):

一,配置的地方有两处,File-> Setting -> Languages & Frameworks -> PHP  下的 Debug 和 Servers

Debug,设置PHPSTORM的端口号,XDEBUG通过这个端口与PHPSTORM建立连接,在服务端的设置参数中已经设置了。

Servers,首先要给server起个名称。位置1,web服务器的访问地址; 位置2,是本地路径与远程路径的对应

二,代码进行debug时要和服务器的XDEBUG先建立会话连接。 上面说过,如果服务端设置了xdebug.remote_autostart=1,那么就无需通过建立连接了。

在建立连接之前,需要开启监听服务端连接:

三,配置DEBUG服务

1.选择“PHP Remote Debug”

2.填写名称后,选择使用的之前配置好的Debug Server.

3.该Debug配置项所使用的IDE key (XDEBUG_SESSION_START参数的值)。

四,在代码需要调试的地方打上断点,这个就不用说了,都应该知道的。

五,用PHPSTORM提供的REST Client工具去访问运行代码的URL:

注意,在这里访问参数中一定要有XDEBUG_SESSION_START这个参数,否则debug不会使用自定义的debug配置文件。这里传的参数就是之前设置的IDE key。如果XDEBUG_SESSION_START不传这个参数,而是随便传了一个参数,debug也会启动,但是将不会使用之前的debug配置(上图的“API DEBUG”),而是会根据访问的第一个文件自动建立一个debug session。

访问页面准备进入断点时,PHPStorm报错:Cannot accept external Xdebug connection: Cannot evaluate expression'isset($_SERVER['PHP_IDE_CONFIG'])';

导致此问题的一个可能原因是:服务器端的php.ini中配置了:

extension=/path/xdebug.so

应该只保留下面一个:

zend_extension=/path/xdebug.so

(windows下则是zend_extension=php_xdebug.dll,只保留这一项)

到此为止!

XDEBUG 远程调试的更多相关文章

  1. PhpStorm XDebug 远程调试

    现在我们自己公司的各种开发和测试服务器,都是使用阿里云的服务器.一些PHP的项目,无法在本地搭建完整的环境,在外网服务器上调试更方便定位问题.发现网上没有完整的关于如何配置PHPStorm和XDebu ...

  2. xdebug远程调试原理分析

    xdebug可以控制PHP程序的执行,这意味着xdebug可以在任何时候暂停或者恢复正在运行的PHP程序.当PHP程序被暂停的时候,xdebug可以获取到程序的有关 信息,比如变量的值等.xdebug ...

  3. PhpStorm Xdebug远程调试环境搭建原理分析及问题排查

    2017年05月26日  经验心得 目录   一. 环境介绍 二. 远程环境配置 2.2 Xdebug安装 2.3 配置 三. 本地phpstorm配置 3.1 下载远程代码 3.2 添加php解释器 ...

  4. 配置xdebug远程调试php的三种方法(配合phpstorm)

    使用xdebug对PHP进行远程调试是一个php程序员一定要掌握的技能,关于在本机设置xdebug进行调试的方法,请自行百度,下面说一下如何配置远程服务器在开发机上的调试. 首先要在远程服务器上安装x ...

  5. [xDebug] PhpStorm Xdebug远程调试环境搭建

    对于简单的工程,直接print_r();exit()已经足够,但是对于大型项目有时就有点力不从心.. 1,环境介绍 本地:windows10(192.168..)+ phpstorm8远程:Cento ...

  6. 开发机多用户 xdebug 远程调试 PhpStorm

    在公司都用的远程开发机开发,每次有错误调试就得dd(xxx)然后保存真是,让我在本地开发用惯xdebug的情何以堪,所以有了下文. 1.安装配置xdebug 直接使用pecl安装即可 # pecl i ...

  7. phpstorm+xdebug远程调试设置

    1 xdebug扩展安装 1.1 xdebug扩展安装: 2 服务器PHP配置 3 phpstorm设置 3.1 添加远程debug 3.2 phpstorm设置: 4 浏览器插件安装 4.1 chr ...

  8. NetBeans配置Xdebug 远程调试PHP

    1.配置PHP 说明:xdebug.trace_output_dir和xdebug.profiler_output_dir需要增加权限 #chmod 755 /usr/xdebug-tmp xdebu ...

  9. php+xdebug远程调试(单人)

    目录 服务器上安装 XDebug 及配置 客户端 PHPstorm 配置 浏览器安装插件 服务器上安装 XDebug 及配置 XDebug 安装 略 配置: 打开 php.ini 配置文件: vim ...

随机推荐

  1. ACM TOMM 2017最佳论文:让AI接手繁杂专业的图文排版设计工作

    编者按:你是否曾经为如何创作和编辑一篇图文并茂.排版精美的文章而烦恼?或是为缺乏艺术灵感和设计思路而痛苦?AI技术能否在艺术设计中帮助到我们?今天我们为大家介绍的这篇论文,“Automatic Gen ...

  2. Mysql安装报错解决办法

    .msi版MySQL安装包在安装最后执行的时候到第三部或者第四部死掉 主要是因为之前安装的版本没有卸载干净,要卸载干净MySQ安装包有一些几个步骤: 1.通过卸载程序MySQL的相关组件 2.删除My ...

  3. AE开发关于OnMapReplaced方法的使用原理

    The OnMapReplaced event is triggered whenever the IMapControl2::Map is replaced by another map, such ...

  4. Hive相关集锦

    Hive介绍 http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.htmlHive的数据类型和数据模型 http://www.c ...

  5. Spring boot 集成ActiveMQ(包含双向队列实现)

    集百家之长,成一家之言.  1. 下载ActiveMQ https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.15.9/apache-activ ...

  6. C#访问数组元素

    在C#中,使用索引来访问数组元素.索引必须是一个整型值. 在数组中,每一个维度的索引从0开始. 一.访问一维数组元素 int[] array = {1,2,3,4,5,6,7,8,9,10}; // ...

  7. javascript 完整知识点整理

    by 蔡舒啸 目录 一 5种基本类型 typeof 关键字 三种强制类型转换 日期 二 if语句for语句whiledo-whileswitch-case 比较运算符 逻辑运算符 if for语句 w ...

  8. 【动态规划】51nod1780 完美序列

    巧妙的转化:f前两维大小开反TLE了一发…… 如果一个序列的相邻两项差的绝对值小于等于1,那么我们说这个序列是完美的. 给出一个有序数列A,求有多少种完美序列排序后和数列A相同. Input 第一行一 ...

  9. pandas归一化操作

    归一化操作有两种 1.max和min的归一化操作 min-max标准化(Min-Max Normalization) 返回结果0~1 公式: 实例: 如: 随机生成假数据如下 df = DataFra ...

  10. node 文件下载到本地 (支持中文文件名)

    downloadfile:function(req,res,next){ var name= encodeURI(req.query.name); var path= req.query.url; v ...