PHP远程调试 - PhpStorm

PHP远程开发

远程调试前,请完成PHP远程开发配置


本地Xdebug调试原理

IDE集成了Xdebug插件,并监听指定端口,一般为9000;

Xdebug作为PHP扩展,需要在php.ini中对其进行配置,配置内容包含欲发送数据的端口,即IDE监听的端口(一般为9000)。

Xdebug通过URL上的XDEBUG_SESSION_START参数来判断是否开启调试,Xdebug和IDE通过相同端口进行通迅、传递断点行数、断点运行情况等。


远程Xdebug调试原理(局域网)

同上,远程调试也必须保证IDE和Xdebug能够相互通迅,其次是远程代码与本地代码必须一致。

远程服务器上Xdebugphp.ini配置通常如下,其中xdebug.remote_host指定IDE所在电脑的IP,用于与IDE互通。IDE通常在本地,在远程服务器上指定IDE所在的本地IP,并不是一种好的解决方案。

....
xdebug.remote_host=localhost
xdebug.remote_port=9000
....

推荐如下,配置xdebug.remote_connect_back=On,从请求来源中动态获取IP;即,动态获取IDE所在的电脑IP,因为一般访问服务器的IP就是IDE所在的电脑IP;

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension="D:xamppphpextphp_xdebug-2.5.4-7.1-vc14.dll"
xdebug.remote_enable=1

# 从 $_SERVER['HTTP_X_FORWARDED_FOR'] 或 $['REMOTE_ADDR'] 中获取来源IP, 此配置会覆盖xdebug.remote_host
xdebug.remote_connect_back=On
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.collect_vars=On
xdebug.collect_return=On
xdebug.collect_params=On
xdebug.profiler_enable=1
xdebug.profiler_output_dir=D:xampptmp


远程Xdebug调试原理(公网)

详见:https://www.xiebruce.top/1191.html#xdebug-2


Linux安装Xdebug

1.0> 执行如下命令输出当前环境中的PHP信息

php -r 'phpinfo();'

2> 打开https://xdebug.org/wizard.php,粘贴 phpinfo() 输出的所有信息,然后点击下方按钮进行分析


如下,分析结果中会出现适合当前环境的Xdebug版本,以及下载安装步骤:


安装上图提示,先安装必要软件

yum groupinstall "Development tools" && yum install php-devel autoconf automake

下载安装Xdebug

cd / 
## 下载xdebug
wget http://xdebug.org/files/xdebug-3.0.4.tgz
## 解压
tar -xvzf xdebug-3.0.4.tgz
## 进入目录
cd xdebug-3.0.4
## 执行
./configure
## 编译
make
## 复制到php扩展目录
cp modules/xdebug.so /usr/lib64/php/modules

编辑php.ini,添加如下内容

vim /etc/php.ini

[Xdebug]
; xdebug.so位置
zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_connect_back=On
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=PHPSTORM


; xdebug.so位置
zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.discover_client_host = on
xdebug.client_port = 9000
xdebug.remote_handler=dbgp 
xdebug.idekey=PHPSTORM


重启Apache

systemctl restart httpd.service;


打印PHP环境信息,查看Xdebug是否安装成功

php -r 'phpinfo();'


举报

© 著作权归作者所有


1