在公司都用的远程开发机开发,每次有错误调试就得dd(xxx)然后保存真是,让我在本地开发用惯xdebug的情何以堪,所以有了下文。

1.安装配置xdebug

直接使用pecl安装即可
# pecl install xdebug

然后写xdebug配置,下面是我的设置(具体扩展路径以你安装完后提示的路径为准)

[xdebug]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_host=192.168.220.128(你运行xdebug服务器的外网ip,这里是我在虚拟机测试的地址)
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000

保存重启php

2.配置运行DBGp proxy

首先下载,下载地址,我在这选择的是Komodo IDE 10 (version 10.1.2)然后是Python Remote Debugging Client  Linux (x86_64) ,可以按照你的系统需求选择下载,但推荐选择python版本而不是其他的,因为这篇文章是按python版写的╭(′▽`)╯

下载完解包进入目录,别着急运行,先测试一下包是否已经导入
python -c "import dbgp.client; print 'ok'"

如果没显示ok而是显示错误就代表没导入

编辑/etc/profile(具体目录按照你解压目录为准,我这是root下的PythonRemoteDebugging目录,因为我的centos 7 的默认python 版本是2.7所以我导入的包目录是pythonlib,如果你是3的改成python3lib)
export PYTHONPATH=/root/PythonRemoteDebugging/pythonlib

继续上一步测试是否显示ok

好了现在可以运行了
./pydbgpproxy -d 127.0.0.1:9000 -i 192.168.220.128:9001

如果显示类似的信息代表运行成功,如果错误一般提醒端口已被占用换个端口即可

INFO: dbgp.proxy: starting proxy listeners.  appid: 3583
INFO: dbgp.proxy: dbgp listener on 127.0.0.1:9000
INFO: dbgp.proxy: IDE listener on 192.168.220.128:9001

好了最后一步,开放9001端口

编辑/etc/sysconfig/iptables 加一条规则
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9001 -j ACCEPT

重启iptables 让规则生效

然后运行pydbgpproxy 

3.设置PhpStorm

打开 Tools->DBGp proxy->configuration
IDE key 是用来区分不同用户的 只要每个人的不重复就可以了
Host 这个就是pydbgpproxy中指定的外网ip,我这是192.168.220.128
Port pydbgpproxy中指定的端口,我这是9001
保存后,我们还得注册一下
点击Tools->DBGp proxy->register IDE 
显示以下内容,表示注册成功
IDE successfully registered with ide key 'PHPSTORM'

好了 现在可以跟小伙伴们愉快的在远程开发机上享受xdebug了\(^o^)/


参考网站:
https://xdebug.org/docs/install
http://docs.komodoide.com/Manual/debugpython
https://confluence.jetbrains.com/display/PhpStorm/Multi-user+debugging+in+PhpStorm+with+Xdebug+and+DBGp+proxy

开发机多用户 xdebug 远程调试 PhpStorm的更多相关文章

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

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

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

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

  3. PhpStorm XDebug 远程调试

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

  4. XDEBUG 远程调试

    我的PHP环境是安装在虚拟机中.真机系统用的是windows.那么我要用XDEBUG调试代码,就得用XDEBUG的远程调试功能. 首先要给远程环境中安装XDEBUG扩展,具体方法:http://www ...

  5. spark JAVA 开发环境搭建及远程调试

    spark JAVA 开发环境搭建及远程调试 以后要在项目中使用Spark 用户昵称文本做一下聚类分析,找出一些违规的昵称信息.以前折腾过Hadoop,于是看了下Spark官网的文档以及 github ...

  6. xdebug远程调试原理分析

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

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

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

  8. CUDA并行程序设计 开发环境搭建与远程调试

    课题需要用到GPU加速.目前使用的台式电脑只有核心显卡,而实验室有一台服务器装有NVIDIA GTX980独显.因此,想搭建一个CUDA的开发环境,来实现在台式机上面开发cuda程序,程序在服务器而不 ...

  9. phpstorm+xdebug远程调试设置

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

随机推荐

  1. php安装phalcon扩展

    一.关于phalcon: 简介: Phalcon 是开源.全功能栈.使用 C /zephir 编写.针对高性能优化的 PHP 5 框架. 开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 ...

  2. sql 字符次数

    FParentPath 查询字段 本条语句 条件是 ,  查询 , 在这个字段出现了几次 1=没有 2=1次 3=2次(依次累加)

  3. Hadoop 2.4.1 Map/Reduce小结【原创】

    看了下MapReduce的例子.再看了下Mapper和Reducer源码,理清了参数的意义,就o了. public class Mapper<KEYIN, VALUEIN, KEYOUT, VA ...

  4. 使用过滤器解决SQL注入和跨站点脚本编制

    1 SQL注入.盲注 1.1 SQL注入.盲注概述 Web 应用程序通常在后端使用数据库,以与企业数据仓库交互.查询数据库事实上的标准语言是 SQL(各大数据库供应商都有自己的不同版本).Web 应用 ...

  5. 模拟登录神器之PHP基于cURL实现自动模拟登录类

    一.构思 从Firefox浏览器拷贝cURL命令(初始页.提交.提交后) 自动分析curl形成模拟登录代码 默认参数:ssl/302/gzip 二.实现 接口 (一)根据curl信息执行并解析结果 p ...

  6. react-native SyntaxError xxxxx/xx.js:Unexpected token (23:24)

    在运行react-native项目时提示 SyntaxError xxxxx/xx.js:Unexpected token (23:24) 我这边的问题原因:jsx语法错误,解决办法就是认真排查代码然 ...

  7. MyBatis知多少(16)MyBatis映射

    之前我们详细地讨论了MyBatis背后的设计理念以及iBATIS框架是如何产生的.也说明了MyBatis是一个混合型解决方案,它从处理关系数据库的其他不同方法那里借鉴了许多思想.那么MyBatis到底 ...

  8. When to use dequeueReusableCellWithIdentifier vs dequeueReusableCellWithIdentifier: forIndexPath

    The most important difference is that the forIndexPath: version asserts (crashes) if you didn't regi ...

  9. Container Stack

  10. 【JVM学习笔记一】JVM内存分布

    Overview 学习JVM首先需要了解一下JVM管理的内存是如何分布的,在看了<深入理解Java虚拟机>和一些博文之后,我准备自己记录一下学习的过程. 下图是JVM中运行时数据区的大致示 ...