为什么要使用断点调试
大家可能觉得用var_dump和echo也可以调试,那为什么还要安装Xdebug断点调试呢?
确实如此。但是,var_dump和echo编写的代码应该被删除,它们确切地知道在哪里播放。如果发现他们没有运行到点,他们应该修改代码并再次运行。在断点调试中,更方便的是动态中断点,逐行查看各种变量的当前值,甚至临时修改变量的值。我建议你使用Xdebug断点调试。
安装Xdebug
Pecl安装xdebug,如果是php7以下的版本,需要添加版本号:
Pecl安装xdebug-2.5.5pecl如果找不到扩展,用源代码编译。例如:
wget http://pecl.php.net/get/xdebug-2.5.5.tgz tar xzf xdebug-2 . 5 . 5 . tgz CD xdebug-2 . 5 . 5/ phpize 。/configure make make install注意:php5.6只能使用xdebug及以下版本。
安装后,需要用php.ini进行配置:
[xdebug]Zend _ extension=xdebug . soxdebug . enable=1 debug . remote _ enable=1;如果打开此选项,xdebug.remote_host的以下参数将被忽略;xdebug . remote _ connect _ back=1;不使用xdebug _ session _ start=1xdebug自动启动。remote _ autostart=1;主机ipxdebug . remote _ host=192 . 168 . 36 . 101 bug . remote _ port=19001 bug . remote _ handler=dbgp需要注意的是:
1.它是zend_extension,不是extension;
2.xdebug.remote_autostart打开后,不需要手动给请求url添加XDEBUG_SESSION_START=1,只要Phpstorm打开断点调试就可以了。非常方便;
3.remote_host配置了一台安装了Phpstorm的机器,需要注意。如果安装php的机器和安装Phpstorm的机器是同一台机器,那么地址可以写成127.0.0.1。
如果您使用的是docker环境,remote_host会写入主机的IP地址。
4.我写的xdebug.remote_port端口是19001,所以Phpstorm也需要修改。
Php-fpm需要在配置完成后重新启动。
配置Phpstorm
配置也很简单,只需配置端口:
然后可以在断点处调试。打开监控:
请求url时会自动捕获该请求。
注意:
1.不要同时开启多个项目的监控;
2.监听远程代码时,如果主机和代码所在的目录结构相同,会直接监听成功。否则,将提示您设置代码映射关系。您也可以手动设置:
这里,因为主机是windows,代码是在linux中,所以目录是不一致和映射的。否则,断点将失败。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。