一文掌握PHP Xdebug 本地与远程调试

栏目: PHP · 发布时间: 6年前

内容简介:原文链接:很久没写PHP了、同样很很久没有用XDebug了,近期有个简单的场景要用到,简单记录一下关键步骤。本地环境:

原文链接: 一文掌握PHP Xdebug 本地与远程调试

很久没写 PHP 了、同样很很久没有用XDebug了,近期有个简单的场景要用到,简单记录一下关键步骤。

本地调试

本地环境:

$ php -v
PHP 7.3.4 (cli) (built: Apr  8 2019 10:21:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.1, Copyright (c) 2002-2019, by Derick Rethans

环境搭建

// 安装xdebug
$ pecl install xdebug
// 配置xdebug
$ vim /usr/local/etc/php/7.3/conf.d/ext-xdebug.ini
[xdebug]
 zend_extension="xdebug.so"
 xdebug.remote_enable=On
 xdebug.remote_port=9001
 xdebug.idekey=PHPSTORM
 xdebug.remote_connect_back = 1
// 重启php服务
$ brew services restart php@7.3

IDE 配置

我是在 ~/Downloads/xdebug/ 目录下放了一个简单的PHP文件 test.php 来测试,在这个目录下用 php -S 127.0.0.1:7790 起了个http服务,可参考进行下述配置。

IDEA的几个配置项

一文掌握PHP Xdebug 本地与远程调试

一文掌握PHP Xdebug 本地与远程调试

一文掌握PHP Xdebug 本地与远程调试

开启监听

一文掌握PHP Xdebug 本地与远程调试

效果演示

设置之后, 在IDE里打上断点, 在浏览器打开这个链接即可开启测试

http://127.0.0.1 :7790/test.php?XDEBUG_SESSION_START=PHPSTORM

效果如下:

一文掌握PHP Xdebug 本地与远程调试

浏览器没有必要安装 Xdebug Helper 插件。

远程调试

与上一篇联动, 本篇是远程调试, 主要记录一下过程

本地环境:

# php -v
PHP 7.2.16 (cli) (built: Mar 10 2019 21:22:49) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.8.0-dev, Copyright (c) 2002-2019, by Derick Rethans

环境搭建

// 如果没有安装过需要先行安装
# yum install -y php-devel gcc

// 安装xdebug
# cd /usr/local/src
# git clone https://github.com/xdebug/xdebug.git
# cd xdebug
# ./rebuild.sh
// xdebug配置文件
# vim /etc/php.d/xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=On
xdebug.remote_port=11955
xdebug.idekey=PHPSTORM
// 重启PHP服务
# systemctl restart php-fpm
# systemctl status php-fpm

然后重点来了,一定不要忘记开放上面配置的 xdebug.remote_port 端口号,开放此端口号、开放此端口号、开放此端口号。

开放端口每个系统都不太一样,在CentOS7中可以使用 firewall-cmd 来操作

# firewall-cmd --zone=public --add-port=11955/tcp --permanent
# firewall-cmd --reload

IDE 配置

IDE的配置与本地调试不太一样,总的来说有两种方式,一种是通过在IDE配置 Remote Debug , 需要配置登录远端服务器;一种是通过 ssh 来做远程端口转发到本地来实现类似本地调试的方式。

在这里,我选用了后一种方式来操作。

远程端口转发

// HOST 为远程服务器在~/.ssh/config的配置host名, 可以替换为你的 比如 root@1.1.1.1
ssh -NT -R 11955:127.0.0.1:9001 HOST

这样就实现了远程xdebug端口11955到本地9001的映射。

IDE配置

与本地调试的配置不一样的地方就是host和port,其他地方大同小异。

IDEA-PHP-Servers的配置:

host 为远程web服务的域名, port 为远程web提供服务的端口号。

同时需要注意的是:需要勾选 path mappings , 并正确配置要debug的工程目录在远程和本地两个环境的映射关系。

一文掌握PHP Xdebug 本地与远程调试

IDEA-PHP-XDebug-DBGp-Proxy的配置:

更改 hostport 为远程web服务配置,与上一步相同

一文掌握PHP Xdebug 本地与远程调试

效果演示

设置之后, 在IDE里打上断点, 在浏览器打开这个链接即可开启测试

http://example.com/test.php?X...

效果如下:

一文掌握PHP Xdebug 本地与远程调试

同样的,浏览器没有必要安装 Xdebug Helper 插件。


以上所述就是小编给大家介绍的《一文掌握PHP Xdebug 本地与远程调试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Game Programming Patterns

Game Programming Patterns

Robert Nystrom / Genever Benning / 2014-11-2 / USD 39.95

The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exac......一起来看看 《Game Programming Patterns》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具