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

一、背景介绍

最近在了解网址导航项目,为了能够更加深入地了解被测对象,所以我选择了查看网址导航代码的方式进行,但是只是生硬地查看php源代码是比较生涩的,我希望能够通过IDE工具进行代码单步调试来了解整个网址导航的功能实现。

为了达成以上目的,我选择了phpstorm+xdebug来远程调试Linux上的代码。与之前白松分享的phpstorm+xdebug调试方法不同的是,前者调试的Webserver是在本地环境搭建了php+apache调试的,而我要面对的问题有:

1.网址导航的代码是部署在Linux虚机环境上的。

2.代码运行环境是:Linux+nginx+php-fpm+redis+superphp的环境支持

为了解决以上方法,采用了以下的方法。

二、配置方法

1.在Linux虚机上编译配置xdebug

1)下载xdebug。访问http://xdebug.org/download.php,下载对应的xdebug源代码。

2)# tar -xvf xdebug-2.3.2.tgz

3)#cd xdebug

4)运行php目录/bin/phpize

5)配置./configure--enable-xdebug --with-php-config=/php的bin路径/php-config

6)make

7)make install

2.在Linux虚机上配置xdebug

在php.ini文件中增加如下配置:

zend_extension="/search/php5/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so" //xdebug.so的路径,请根据安装的php目录来配置

[xdebug]

xdebug.idekey=PHPSTORM

xdebug.remote_connect_back = 1 //如果开启此,将忽略下面的 xdebug.remote_host 的参数

xdebug.remote_host=10.129.157.29 //注意这里是,客户端的ip<即IDE的机器的ip,不是你的web server>

xdebug.remote_enable=on

xdebug.remote_port = 9001 //注意这里是,客户端的端口<即IDE的机器的ip,不是你的web
server>

xdebug.remote_handler = dbgp

xdebug.auto_trace = 1

xdebug.collect_includes = 1

xdebug.collect_params = 1

xdebug.collect_return = 1

xdebug.default_enable = 1

xdebug.collect_assignments = 1

xdebug.collect_vars = 1

xdebug.remote_autostart = 1

xdebug.show_local_vars = 1

xdebug.show_exception_trace = 0

3.下载phpstorm

4.在phpstorm中配置

1)配置Debug项:打开file->setings->php|Debug。在右侧的xdebug配置项中,配置与服务器xdebug一样的端口号,如上例的9001。

2)配置server项

a.打开file->setings->php|Servers 在右侧点击+,添加server,host: web服务器的域名或ip ,端口一般为80。

b.勾选下面的 use pathmapping,在absolute path to the server填写服务器上代码所在的路径。这里一定要设置哦! 不然,会发生找不到文件而出错,导至调试终止 。

note:由于网址导航中还要引用superphp,所以在project中需要增加superphp,并且设置在服务器上superphp的路径。

3)配置WEB Application调试点:打开Run->EditConfigurations-> 增加一个 PHP WEBAPPlication 的调试点 。

至此,配置完毕!

5.在代码中设置断点后,点击Run->Debug,浏览器被调起,同时phpstorm中的断点被中断,之后就可以F5单步调试了。

时间: 2024-10-15 04:06:46

PhpStorm+xdebug远程调试Linux机器上的代码的相关文章

PhpStorm XDebug 远程调试

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

Windows远程调试Linux上的C++程序:Eclipse+MingW+Samba+GDBserver

转自:http://www.heimizhou.com/windows-remote-debug-linux-c-plus-plus.html 最近有一个需求,就是需要在Windows上远程调试Linux上的C++程序,然后我就从网上搜集各种方法,但是发现很多方法中是先在Windows上编译程序,然后再从Linux上编译程序,最后进行远程调试,这种方法使我的调试不能进入源代码,后来经过尝试发现只需要在Linux上编译程序即可.下面从三个方面:需要安装的软件.安装与配置.配置远程调试,来介绍一下我

利用ganymed-ssh2远程执行其它Linux机器上的shell命令

实际应用中,有时候需要从web管理界面上,远程去启动其它linux主机上的程序,利用ssh协议可以方便的满足这一需求.事实上hadoop架构中,从nn上启动dn时,就是利用了这一原理.ganymed-ssh2是一个实现了ssh协议的开源项目,项目地址为:http://ganymed-ssh-2.googlecode.com/ (下载源码要翻强,众所周知的原因),如果只是使用的话,pom.xml添加以下依赖项就行了: 1 <dependency> 2 <groupId>ch.ethz

XDEBUG 远程调试

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

PHPStorm+XDebug进行调试图文教程以及解析wamp的php.ini设置不生效的原因

这篇文章主要为大家详细介绍了PHPStorm+XDebug进行调试图文教程,内容很丰富,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 笔者的开发环境如下:Windows8.1+Apache+PhpStorm+XDebug+Firefox(XDebug helper 1.4.3插件). 一.XDebug安装配置 (1)下载XDebug下载地址:http://www.xdebug.org/必须下载跟机器上安装的php匹配的版本才行.具体下载方法如下:将phpinfo网页的源代码拷贝到http:/

xdebug远程调试原理分析

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

linux机器上部署多台Tomcat

在Linux机器上部署多台Tomcat, 我部署的是Tomcat8,只需要一步,即避免端口号冲突. 在解压后的tomcat目录下,修改conf下server.xml. 修改shutdown端口: <Server port="8050" shutdown="SHUTDOWN">//修改为没有被占用的端口 修改connector端口: <Connector port="9999" protocol="HTTP/1.1&qu

如何在远程桌面的机器上访问自己本地硬盘

具体方法有如下两种: 1,连接时点击“选项”,选择“本地资源”,将下面的“本地磁盘”“打印机”“串行口”打钩.再进行连接时就可以在远程登录的机器上访问自己的硬盘了. 2,可能明明打钩后,仍是不能显示自己的硬盘,可以在远程机的“我的电脑”的地址栏内输入:\\tsclient\c,即可访问本地的C盘,可根据需要进行选择E,D,F盘等.

使用Windows上的Eclipse 远程调试 linux下的Tomcat

1:修改Linux上Tomcat的catalina.sh,第一行添加declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9528" 2:在eclipse中, 点 "Run->Debug...",选 "Remote Java Application",按提示新建,"Project"一项选择需要调