docker环境下的xdebug安装与代码调试
专注于PHP、MySQL、Linux和前端开发,感兴趣的感谢点个关注哟!!!文章整理在GitHub,Gitee主要包含的技术有PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux和工具资源等相关理论知识、面试题和实战内容。
@author: 一只独立特行的猪 @文档地址:卡二条的技术圈
xdebug介绍
Xdebug是PHP的一个扩展,方便我们调试PHP应用程序的执行流程信息。使用过JavaScript中的debug,应该就能很好的理解xdebug。总结,大致有如下的功能:
它包含一个用于IDE的调试器。 它升级了PHP的var_dump()函数。 它为通知,警告,错误和异常添加了堆栈跟踪。 它具有记录每个函数调用和磁盘变量赋值的功能。 它包含一个分析器。 它提供了与PHPUnit一起使用的代码覆盖功能。
本文针对docker的环境下,进行xdebug的安装与简单调试。
环境
环境都是在docker上运行的,使用到了dnmp。
PHP版本:7.4.20。xdebug版本:3.1.1。
流程
要想使用docker下的PHP容器来调试。比如要经过下面的几个流程。大家按照下面的流程进行安装,就可以了。使用这个方式非常简单、快捷。
使用docker搭建一个PHP容器。
给PHP安装xdebug扩展。
配置xdebug信息。
配置PHPstorm即可。
按照PHP容器
这一步就省略,搭建可以根据自己的需要搭建,也可以使用演示环境中使用的docker环境。、Gitee[https://gitee.com/bruce_qiq/php_dnmp/tree/master]
安装xdebug扩展
按照xdebug扩展也是非常简单,直接使用install-php-extensions xdebug
就可以了。如果你是自己搭建的PHP容器,也可以使用常规的编译方式安装xdebug扩展。需要注意xdebug与PHP的版本。xdebug官方是提供了一个检测工具,帮助我们如何选择xdebug的版本。我们可以在终端使用php -i
将输出的内容,填充到网站的文本框内,检测之后,会自动给出安装的版本,以及安装的流程。
如果出现下面的界面,则表示扩展安装成功。
+----------------------------------------------------------------------+
| |
| INSTALLATION INSTRUCTIONS |
| ========================= |
| |
| See https://xdebug.org/install.php#configure-php for instructions |
| on how to enable Xdebug for PHP. |
| |
| Documentation is available online as well: |
| - A list of all settings: https://xdebug.org/docs-settings.php |
| - A list of all functions: https://xdebug.org/docs-functions.php |
| - Profiling instructions: https://xdebug.org/docs-profiling2.php |
| - Remote debugging: https://xdebug.org/docs-debugger.php |
| |
| |
| NOTE: Please disregard the message |
| You should add "extension=xdebug.so" to php.ini |
| that is emitted by the PECL installer. This does not work for |
| Xdebug. |
| |
+----------------------------------------------------------------------+
配置
配置xdebug
[xdebug]
xdebug.client_port=9000
xdebug.client_host=192.168.2.101
xdebug.mode=develop,debug,profile,trace
xdebug.profiler_append = 0
xdebug.profiler_output_name = cachegrind.out.%p
xdebug.start_with_request = default|yes|no|trigger
xdebug.trigger_value = StartProfileForMe
PHPstorm配置
PHPstorm我使用的是2021版本,因此在界面可能有一些不太一样。大家根据自己的情况,找到对应的配置即可。大致的界面如下:
Error running 'local': Port 9501 is busy。如果在实际调试中出现该错误信息,则直接修改一个端口号(没有被占用的端口号),重启PHP服务就可以了。