我无法使用我的 PhpStorm 2021.1.4 在 Xdebug 中调试 Laravel 8 应用程序
I failed to debug Laravel 8 app in Xdebug with my PhpStorm 2021.1.4
我尝试使用我的 PhpStorm 2021.1.4 在 Xdebug 中调试我的 Laravel 8 应用程序但失败了
我在本地安装了 Xdebug Ubuntu 20 OS:
$ php -v
PHP 8.1.4 (cli) (built: Apr 4 2022 13:30:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.4, Copyright (c) Zend Technologies
with Zend OPcache v8.1.4, Copyright (c), by Zend Technologies
with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans
我在 /etc/php/8.1/apache2/conf.d/20-xdebug.ini
中添加了参数:
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=PHPSTORM
xdebug.default_enable = 1
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9003
implicit_flush= On
; xdebug.remote_handler="dbgp"
但我不确定该文件中必须包含哪些参数?我在 google 中搜索,不同情况下此信息不同。
运行 控制台中的服务器:
php artisan serve
我 运行 我的 Chrome 浏览器中的应用 URL:
http://127.0.0.1:8000
我已经安装了 Chrome Xdebug 扩展:https://prnt.sc/IBI42sSbKStr
我预计当我刷新此页面时,我的 PhpStorm 将停止流程并打开断点。
在 PhpStorm 中我有设置:https://prnt.sc/WgYSOlEuSjbf
使用调试端口 9003 并在上面的文件中。
和主页分页符:https://prnt.sc/MSZ5KmIOYn17
和:https://prnt.sc/gKIjTXj2LlRb
怎么了?
您只需要 20-xdebug.ini
中的以下内容:
zend_extension=xdebug.so
xdebug.mode=debug
不过我会用 xdebug.mode=develop,debug
代替。
其他设置已经是默认设置(xdebug.client_host=127.0.0.1
、xdebug.client_port=9003
)或 Xdebug 的旧版本 (2)(xdebug.remote*
和 xdebug.default_enable
)。
如果安装了浏览器扩展,您仍然需要点击其中的图标,以启用调试。
如果这不起作用,那么您可以尝试调试其中包含 xdebug_info()
的页面(例如,在您的 index.php 文件中)。如果指示连接到您的 IDE.
,这将告诉您启用了哪些模式,以及 Xdebug 尝试做什么
如果那也不能提供足够的信息,你可以设置xdebug.log=/tmp/xdebug.log
和xdebug.log_level=10
,然后停止后,重新启动php artisan server
,并在浏览器中重新加载页面应该包含脚本启动期间发生的大量信息,Xdebug 将在其中检查参数等,并尝试连接到您的 IDE.
我尝试使用我的 PhpStorm 2021.1.4 在 Xdebug 中调试我的 Laravel 8 应用程序但失败了 我在本地安装了 Xdebug Ubuntu 20 OS:
$ php -v
PHP 8.1.4 (cli) (built: Apr 4 2022 13:30:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.4, Copyright (c) Zend Technologies
with Zend OPcache v8.1.4, Copyright (c), by Zend Technologies
with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans
我在 /etc/php/8.1/apache2/conf.d/20-xdebug.ini
中添加了参数:
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=PHPSTORM
xdebug.default_enable = 1
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9003
implicit_flush= On
; xdebug.remote_handler="dbgp"
但我不确定该文件中必须包含哪些参数?我在 google 中搜索,不同情况下此信息不同。
运行 控制台中的服务器:
php artisan serve
我 运行 我的 Chrome 浏览器中的应用 URL:
http://127.0.0.1:8000
我已经安装了 Chrome Xdebug 扩展:https://prnt.sc/IBI42sSbKStr 我预计当我刷新此页面时,我的 PhpStorm 将停止流程并打开断点。
在 PhpStorm 中我有设置:https://prnt.sc/WgYSOlEuSjbf 使用调试端口 9003 并在上面的文件中。
和主页分页符:https://prnt.sc/MSZ5KmIOYn17 和:https://prnt.sc/gKIjTXj2LlRb
怎么了?
您只需要 20-xdebug.ini
中的以下内容:
zend_extension=xdebug.so
xdebug.mode=debug
不过我会用 xdebug.mode=develop,debug
代替。
其他设置已经是默认设置(xdebug.client_host=127.0.0.1
、xdebug.client_port=9003
)或 Xdebug 的旧版本 (2)(xdebug.remote*
和 xdebug.default_enable
)。
如果安装了浏览器扩展,您仍然需要点击其中的图标,以启用调试。
如果这不起作用,那么您可以尝试调试其中包含 xdebug_info()
的页面(例如,在您的 index.php 文件中)。如果指示连接到您的 IDE.
如果那也不能提供足够的信息,你可以设置xdebug.log=/tmp/xdebug.log
和xdebug.log_level=10
,然后停止后,重新启动php artisan server
,并在浏览器中重新加载页面应该包含脚本启动期间发生的大量信息,Xdebug 将在其中检查参数等,并尝试连接到您的 IDE.