基于phpstorm和vagrant环境的xdebug远程调试

网页调试/本地调试

流程是啥

  • 开发环境安装xdebug,配置监听client端(安装phpstorm那端)
  • 配置phpstorm-debug,重点要用path-map,不然对于单一入口的网页调试找不到哦
  • 断点跟踪吧

详细网上资料很多,下边三个都可以用,我就不赘述了

phpstorm远程调试
Zero-configuration Web Application Debugging with Xdebug and PhpStorm
cannot-debug-with-phpstorm-vagrant-xdebug


远程cli调试

上边的不适用于远程cli调试,为什么?

1
2
3
4
原理是一样,远程主机的xdebug监听client的phpstorm,但是命令行调试, $_SERVER 中没有serverName和IDE_KEY的值.
另外当只起用 xdebug.remote_connect_back = on 不监听指定ip,是需要提供 xdebug.remote_host 的值的。
明白了这些,只要配置环境变量值就可以了
主要就是 XDEBUG_CONFIG 和 PHP_IDE_CONFIG (serverName要对应你在phpstorm中配置的server别名)

1
2
3
4
5
6
7
8
9
10
11
12

#添加下边命令到 ~/.bashrc
function _phpdebug(){
export XDEBUG_CONFIG="remote_host=$(echo $SSH_CLIENT | awk '{print $1}') idekey=PHPSTORM"
export PHP_IDE_CONFIG="serverName=cli"
echo "set XDEBUG_CONFIG=${XDEBUG_CONFIG}; PHP_IDE_CONFIG=${PHP_IDE_CONFIG}"
}
alias phpdebug="_phpdebug"
alias phpdebugoff="unset PHP_IDE_CONFIG && unset XDEBUG_CONFIG"

#执行
source ~/.bashrc

以后调试前只要在vagrant或远程主机先执行 phpdebug 就行
需要取消的话 phpdebugoff 就可以了

参考自:
xdebug-how-to-debug-remote-console-application
debugging-remote-cli-with-phpstorm

如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com 本文链接 : https://newbmiao.github.io/2015/12/04/xdebug-remote-debug-with-phpstorm-and-vagrant.html