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=/phpbin路径/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单步调试了。

 

猜你喜欢

转载自blog.csdn.net/u012322399/article/details/80284188