之前写过一篇博客《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可以映射远程机器到本地机上。
所以如果我们只是在本地使用,根本就不需要这个配置。就因为这个,我纠结了小半天。。。
得到的经验是,一定要仔细阅读文档,一定要仔细阅读文档,一定要仔细阅读文档,重要的事情说三遍~~