在主机中通过xdebug远程调试Vagrant虚拟机中drush脚本的方法

改方法是调试drush所执行的php代码的方法,同样适用于普通的cli方式运行的php程序的调试。

1、首先需要调整cli方式的xdebug.ini配置:

sudo vi /etc/php5/cli/conf.d/xdebug.ini

[XDebug]
zend_extension="/usr/lib/php5/modules/xdebug.so"

xdebug.coverage_enable=0
xdebug.default_enable=0

xdebug.remote_enable=1
xdebug.remote_connect_back=on
xdebug.remote_host=192.168.xxx.xxx
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_log=/tmp/xdebug.log
xdebug.remote_autostart=false

xdebug.idekey="PHPSTORM"

xdebug.max_nesting_level=256

其中的

xdebug.remote_host=192.168.xxx.xxx
需要改成你主机的IP地址

2、创建一个名为drush_debug.sh的脚本文件,其中设置cli调试需要的变量,为了方便,drush_debug.sh直接放在drupal项目的根目录下面,然后把下面的内容拷贝的drush_debug.sh,并保存。

#!/bin/bash
export XDEBUG_CONFIG="idekey=PHPSTORM" &&
export PHP_IDE_CONFIG="serverName=drupalvm.dev" &&
drush "[email protected]"

保存完成之后,使用chmod命令修改drush_debug.sh,使它具有执行权限。

3、配置phpstorm

关于上图的说明:

1). 要保证server的name和第二步的serverName一致

2). 勾选 use path mapping,设置Absolute path on the server为Vagrant虚拟机drupal项目所在的目录。

4、运行drush命令

进入drupal所在的目录,用drush_debug.sh代替原来的drush就可以进行调试了,记得在你需要的地方设置好断点。

5、如果是普通的cli调试,把第2步的

drush "[email protected]"改成php "[email protected]"就可以了

因为非常简单,就不再做详细的说明。

6、关于windows下面Vagrant文件同步的说明:

Vagrantfile中的config.vm.synced_folder的本地路径可以采用相对于Vagrantfile所在文件的路径;并且,并不需要安装ntfs的插件来支持,同步的type直接写nfs即可。

时间: 2024-12-17 08:14:30

在主机中通过xdebug远程调试Vagrant虚拟机中drush脚本的方法的相关文章

xdebug远程调试Vagrant虚拟机中web程序的注意点

主要的一点: xdebug.remote_connect_back=0 这里xdebug.remote_connect_back=1将会使xdebug.remote_host的设置无效,从而无法debug.虽然xdebug.remote_connect_back=1,官方说明是自动检测浏览器的IP地址,然后自动连接到相应的客户端,但在vagrant中似乎工作不正确,我猜测可能是client端有多个IP造成的.所以这里还是手工指定比较稳妥.

phpStorm中使用xdebug工具调试docker容器中的程序

前提准备 phpstorm开发软件 + dnmp(docker + nginx + mysql +php) 配置好hosts 映射比如 /etc/hosts      127.0.0.1 tp5.dev 为现有的php环境安装好xdebug扩展,安装成功之后可以通过页面输出phpinfo()查看是否安装成功xdebug 安装能够进行调试的ieda环境,一般对于php程序开发者来说,使用phpStorm较多,本文也是通过这个讲述. 成熟的docker构建的环境. 可以使用https://githu

XDEBUG 远程调试

我的PHP环境是安装在虚拟机中.真机系统用的是windows.那么我要用XDEBUG调试代码,就得用XDEBUG的远程调试功能. 首先要给远程环境中安装XDEBUG扩展,具体方法:http://www.cnblogs.com/mysic/p/5993463.html 在配置XDEBUG之前,需要先了解下XDEBUG的工作模式,尤其是远程debug时的方式,XDEBUG是需要先和开发端建立连接,启动会话,然后通过相互间传递参数来实现的..XDEBUG远程调试分两种,一种是单用户,一种是多用户.单用

PhpStorm XDebug 远程调试

现在我们自己公司的各种开发和测试服务器,都是使用阿里云的服务器.一些PHP的项目,无法在本地搭建完整的环境,在外网服务器上调试更方便定位问题.发现网上没有完整的关于如何配置PHPStorm和XDebug远程调试的资料,自己配置的过程遇到一些问题,写出来给大家做一个参考. 演示环境 本地开发环境:Mac Pro + PHPStorm 9.0 服务器的环境:Ubuntu 14 LTS + PHP 5.5 + XDebug 2.2.3 不管是Windows还是其它的Linux的版本,具体的配置差不多,

xdebug远程调试原理分析

xdebug可以控制PHP程序的执行,这意味着xdebug可以在任何时候暂停或者恢复正在运行的PHP程序.当PHP程序被暂停的时候,xdebug可以获取到程序的有关 信息,比如变量的值等.xdebug也可以修改一个变量的值,然后再恢复暂停的程序,让其继续运行. xdebug配合IDE执行 可视化调试的流程 (类似于VisualStudio单步调试)被称为“远程调试”,是因为调试时有一个Server(xdebug)和一个Client(IDE),所以在调试的时候,被调试的PHP程序和调试PHP程序的

如何把Windows主机中的文件拉到centOS虚拟机中

如何把Windows主机中的文件拉到centOS虚拟机中 2017年02月19日 22:19:12 Ariel_lin2017 阅读数:6023 标签: vmware tools共享文件 之前写了12篇文章,都是自己做的学习笔记,所以有时候会写得比较粗糙,以至于后面我作总结的学习笔记,就没有再传上来了. 今天,要写的博文,是我因为想通过源码编译安装MySQL引发的花了我一下午去解决的问题——如何把Windows主机中的文件拉到centOS虚拟机中 在网上看了好多博文.论坛,很多解决方法都是针对U

轻易解决VMware 虚拟机中被提示“请不要在虚拟机中运行此程序“

决 VMware 虚拟机 中被提示 "请不要在虚拟机中运行此程序"或者"Themida Sorry, this application cannot run under a Virtual Machine"方法 自己发现问题,解决问题后,觉得应该分享给大家.用记事本打开 VMX 文件 类似 Windows XP Professional.vmx ,在文本末尾加入一行 monitor_control.restrict_backdoor = TRUE 保存文件 现在启动

phpStorm配置xdebug远程调试

安装xdebug 下载xdebug可到 xdebug官网 下载与自己PHP版本对应的xdebug扩展 安装 [root] # cd /usr/local/src [root] # tar zxvf xdebug-2.6.0RC2.tgz [root] # cd xdebug-2.6.0RC2 [root] # /usr/local/php/bin/phpize [root] # ./configure --enable-xdebug --with-php-config=/usr/local/ph

PhpStorm+xdebug远程调试Linux机器上的代码

一.背景介绍: 最近在了解网址导航项目,为了能够更加深入地了解被测对象,所以我选择了查看网址导航代码的方式进行,但是只是生硬地查看php源代码是比较生涩的,我希望能够通过IDE工具进行代码单步调试来了解整个网址导航的功能实现. 为了达成以上目的,我选择了phpstorm+xdebug来远程调试Linux上的代码.与之前白松分享的phpstorm+xdebug调试方法不同的是,前者调试的Webserver是在本地环境搭建了php+apache调试的,而我要面对的问题有: 1.网址导航的代码是部署在