之前写过一篇博客《PHP的学习--在sublime中使用XDebug(Ubuntu)》,讲了在Ubuntu系统 sublime 中配置 XDebug,其实配置好之后,我也很少用,原因有两点:一是正常情况下使用 var_dump 就够了,二是插件的快捷键太复杂,又没有相应的操作的按钮,使用太不方便。

后来,编辑器切换到了Atom,也就一直没尝试去使用 XDebug,最近想要了解一下 Laravel 的源码,想起了看看 Atom 是否有 XDebug 的工具,这一看,还真有,就是 php-debug 项目。发现其操作也比之前 sublime 上插件方便很多。不过在安装过程中遇到了一些坑,在这里记录一下。

首先安装 XDebug,命令如下 :

brew install homebrew/php/php56-xdebug

我使用了 brew 去安装,因为之前装的 php56,所以 XDebug 也要安装相应的版本。

编辑 /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini 文件,添加如下内容:

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1 # Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true

然后重启 php-fpm,这样 php XDebug 就配置好了。

关于上面配置项的相关解释可以查看之前的博客《PHP的学习--在sublime中使用XDebug(Ubuntu)》

有一点要注意的是,需要确认 9000 端口号没有被占用,如果已被占用,可以更换为其它端口号。

然后在 Atom 中安装 php-debug 插件,这个我就不细说了。

最后编辑 vim ~/.atom/config.cson 文件,添加如下内容:

"php-debug":
{
ServerPort: 9000
}

这里的端口号跟 XDebug 的配置保持一致即可。

你会发现这里要添加的内容跟 php-debug 的 doc 里的不太一样,doc 中的内容如下:

"php-debug":
{
ServerPort: 9000
PathMaps: [
"remotepath;localpath"
"/base/path/on/remote/system;C:\\base\\path\\on\\local\\system"
]
}

之前照着 doc 填进去了,没有看相关的解释,结果每次 Debug 时,都是跳到了空页面。后来重新读了一下 doc, 才发现这个问题。

PathMaps的解释是如果调试代码在远程机器上,使用PathMaps可以映射远程机器到本地机上。

所以如果我们只是在本地使用,根本就不需要这个配置。就因为这个,我纠结了小半天。。。

得到的经验是,一定要仔细阅读文档,一定要仔细阅读文档,一定要仔细阅读文档,重要的事情说三遍~~

PHP的学习--在Atom中使用XDebug(Mac)的更多相关文章

  1. PHP的学习--在sublime中使用XDebug(Ubuntu)

    说起来惭愧,自从开始使用Sublime Text之后,再也没有debug过PHP的代码,最近把debug的环境搭建了一下,在这里记录一下. 安装XDebug sudo apt-get install ...

  2. 各种报错各种坑 webpack让我在学习的过程中一度想要放弃

    由于拓展部分不是必须的,只是可以增强用户体验,但是有些时候页面给分页预留的位置不够,这个时候我们就可以通过设置来除去这一部分 子分区由两种创建方法,一种是不定义每个子分区子分区的名字和路径由分区决定, ...

  3. 【腾讯Bugly干货分享】深度学习在OCR中的应用

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5809bb47cc5e52161640c5c8 Dev Club 是一个交流移动 ...

  4. 学习网页制作中如何在正确选取和使用 CSS 单位

    在 CSS 测量系统中,有好几种单位,如像素.百分比.英寸.厘米等等,Web 开发人员很难了解哪些单位在何处使用,如何使用.很多人习惯了总是使用同一种单位,但这一决定可能会严重限制你的设计的执行. 这 ...

  5. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  6. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  7. Java学习-045-目录中文件拷贝

    挺晚的了,直接上码.敬请各位小主参阅,若有不足之处,敬请指正,非常感谢! 目录文件拷贝源码: /** * <strong>目录拷贝</strong><br> * & ...

  8. 关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)

    关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)   作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position ...

  9. 利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)

    利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)   作者:王可利(Star·星星) 总结: 今天学习的jQ类库的使用,代码重复的比较多需要完善.严格区分大小写,在 $(" ...

随机推荐

  1. Socket聊天程序——客户端

    写在前面: 上周末抽点时间把自己写的一个简单Socket聊天程序的初始设计和服务端细化设计记录了一下,周二终于等来毕业前考的软考证书,然后接下来就是在加班的日子度过了,今天正好周五,打算把客户端的详细 ...

  2. HTML DOM 对象

    本篇主要介绍HTML DOM 对象:Document.Element.Attr.Event等4个对象. 目录 1. Document 对象:表示文档树的根节点,大部分属性和方法都是对元素进行操作. 2 ...

  3. JavaScript的继承实现方式

    1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...

  4. PHP 获取 特定时间范围 类

    目录  前序 用途 功能及事项 使用方法 代码及注释 前序: 总体来说,我更应该是一个 android 移动开发者,而不是一个 phper,如果说只做移动端的 APP ,我也不会学这么多,这 2年来, ...

  5. MVC还是MVVM?或许VMVC更适合WinForm客户端

    最近开始重构一个稍嫌古老的C/S项目,原先采用的技术栈是『WinForm』+『WCF』+『EF』.相对于现在铺天盖地的B/S架构来说,看上去似乎和Win95一样古老,很多新入行的,可能就没有见过经典的 ...

  6. 【干货分享】流程DEMO-资产请购单

    流程名: 资产请购  业务描述: 流程发起时,会检查预算,如果预算不够,流程必须经过总裁审批,如果预算够用,将发起流程,同时占用相应金额的预算,但撤销流程会释放相应金额的预算.  流程相关文件: 流程 ...

  7. 用Kotlin实现Android定制视图(KAD 06)

    作者:Antonio Leiva 时间:Dec 27, 2016 原文链接:https://antonioleiva.com/custom-views-android-kotlin/ 在我们阅读有关c ...

  8. 自定义控件之 圆形 / 圆角 ImageView

    一.问题在哪里? 问题来源于app开发中一个很常见的场景——用户头像要展示成圆的:       二.怎么搞? 机智的我,第一想法就是,切一张中间圆形透明.四周与底色相同.尺寸与头像相同的蒙板图片,盖在 ...

  9. 通过squid 禁止访问/只允许访问指定 网址

    安装 squid yum install squid -y 备份squid.conf cp  squid.conf  squid.conf-list vi  squid.conf 输入: acl de ...

  10. mysql 5.7中的用户权限分配相关解读!

    这篇文章主要介绍了MySQL中基本的用户和权限管理方法,包括各个权限所能操作的事务以及操作权限的一些常用命令语句,是MySQL入门学习中的基础知识,需要的朋友可以参考下 一.简介 各大帖子及文章都会讲 ...