Dav*_*e33 8 php xdebug laravel docker visual-studio-code
我花了很多时间尝试我或 Google 能想到的一切,但 Xdebug 不会在任何断点上停止。
\n还查看了这个问题和答案,但仍然...不走运:\n Unable to get Xdebug 3 with Docker
\n过去它可以工作,但不知何故它不再工作了。也许是 docker 或任何包/应用程序的更新导致它停止。
\n在 macOS 上:
\n删除了docker,用最新版本(4.8.1 78998)重新安装了它。
\n删除了我当前的 Laravel Sail 项目并通过以下方式创建了一个新的 Laravel Sail 项目curl -s "https://laravel.build/example-app" | bash
添加SAIL_XDEBUG_MODE=develop,debug到新创建的 .env 文件中
sail up -d开始一切
删除并重新安装 Visual Studio Code 最新版本:1.6.7.1
\n创建了一个包含以下内容的 PHP launch.json 文件:
\n{\n "version": "0.2.0",\n "configurations": [\n {\n "name": "Listen for Sail Xdebug",\n "type": "php",\n "request": "launch",\n "port": 9003,\n "pathMappings": {\n "/var/www/html": "${workspaceFolder}"\n },\n "hostname": "localhost",\n "ignore": [\n "**/vendor/**/*.php"\n ],\n "xdebugSettings": {\n "max_data": 65536,\n "show_hidden": 1,\n "max_children": 100,\n "max_depth": 3\n }\n }\n ]\n}\nRun Code Online (Sandbox Code Playgroud)\n在 VSCode 中收到以下消息:
\n\n\n\'无法验证,因为找不到 PHP 安装。使用设置“php.validate.executablePath”来配置 PHP 可执行文件。\'
\n
我不知道这是否是问题所在,也不知道我应该做什么,因为我正在使用 docker。
\n在路由文件或您创建的任何其他文件中放置断点
\n在 VSCode 的“运行和调试”选项卡内,我告诉它使用配置“监听 Sail Xdebug”并运行调试器 (F5) -> 我检查了所有断点复选框(通知、警告、错误...... .)
\n什么都没发生。VSCode 不会在任何断点处停止。
\n我仍然不知道在哪里可以让它再次运行。
\n如果有人,也许是德里克本人,能够帮助我,我会非常高兴。我剩下的最后一根头发都快要拔掉了:O
\n如果您需要我提供更多信息、设置或代码,请告诉我!
\nxdebug_info()说:
Version 3.1.2\nSupport Xdebug on Patreon, GitHub, or as a business\nEnabled Features\n(through \'XDEBUG_MODE\' env variable)\nFeature Enabled/Disabled Docs\nDevelopment Helpers \xe2\x9c\x94 enabled \nCoverage \xe2\x9c\x98 disabled \nGC Stats \xe2\x9c\x98 disabled \nProfiler \xe2\x9c\x98 disabled \nStep Debugger \xe2\x9c\x94 enabled \nTracing \xe2\x9c\x98 disabled \nOptional Features\nCompressed File Support no\nClock Source clock_gettime\nDiagnostic Log\nNo messages\nStep Debugging Docs\nDebugger Not Active \nPHP\nBuild Configuration\nVersion (Run Time) 8.1.5\nVersion (Compile Time) 8.1.1\nDebug Build no\nThread Safety disabled\nSettings\nConfiguration File (php.ini) Path /etc/php/8.1/cli\nLoaded Configuration File /etc/php/8.1/cli/php.ini\nScan this dir for additional .ini files /etc/php/8.1/cli/conf.d\nAdditional .ini files parsed /etc/php/8.1/cli/conf.d/10-mysqlnd.ini, /etc/php/8.1/cli/conf.d/10-opcache.ini, /etc/php/8.1/cli/conf.d/10-pdo.ini, /etc/php/8.1/cli/conf.d/15-xml.ini, /etc/php/8.1/cli/conf.d/20-bcmath.ini, /etc/php/8.1/cli/conf.d/20-calendar.ini, /etc/php/8.1/cli/conf.d/20-ctype.ini, /etc/php/8.1/cli/conf.d/20-curl.ini, /etc/php/8.1/cli/conf.d/20-dom.ini, /etc/php/8.1/cli/conf.d/20-exif.ini, /etc/php/8.1/cli/conf.d/20-ffi.ini, /etc/php/8.1/cli/conf.d/20-fileinfo.ini, /etc/php/8.1/cli/conf.d/20-ftp.ini, /etc/php/8.1/cli/conf.d/20-gd.ini, /etc/php/8.1/cli/conf.d/20-gettext.ini, /etc/php/8.1/cli/conf.d/20-iconv.ini, /etc/php/8.1/cli/conf.d/20-igbinary.ini, /etc/php/8.1/cli/conf.d/20-imap.ini, /etc/php/8.1/cli/conf.d/20-intl.ini, /etc/php/8.1/cli/conf.d/20-ldap.ini, /etc/php/8.1/cli/conf.d/20-mbstring.ini, /etc/php/8.1/cli/conf.d/20-msgpack.ini, /etc/php/8.1/cli/conf.d/20-mysqli.ini, /etc/php/8.1/cli/conf.d/20-pcov.ini, /etc/php/8.1/cli/conf.d/20-pdo_mysql.ini, /etc/php/8.1/cli/conf.d/20-pdo_pgsql.ini, /etc/php/8.1/cli/conf.d/20-pdo_sqlite.ini, /etc/php/8.1/cli/conf.d/20-pgsql.ini, /etc/php/8.1/cli/conf.d/20-phar.ini, /etc/php/8.1/cli/conf.d/20-posix.ini, /etc/php/8.1/cli/conf.d/20-readline.ini, /etc/php/8.1/cli/conf.d/20-redis.ini, /etc/php/8.1/cli/conf.d/20-shmop.ini, /etc/php/8.1/cli/conf.d/20-simplexml.ini, /etc/php/8.1/cli/conf.d/20-soap.ini, /etc/php/8.1/cli/conf.d/20-sockets.ini, /etc/php/8.1/cli/conf.d/20-sqlite3.ini, /etc/php/8.1/cli/conf.d/20-sysvmsg.ini, /etc/php/8.1/cli/conf.d/20-sysvsem.ini, /etc/php/8.1/cli/conf.d/20-sysvshm.ini, /etc/php/8.1/cli/conf.d/20-tokenizer.ini, /etc/php/8.1/cli/conf.d/20-xdebug.ini, /etc/php/8.1/cli/conf.d/20-xmlreader.ini, /etc/php/8.1/cli/conf.d/20-xmlwriter.ini, /etc/php/8.1/cli/conf.d/20-xsl.ini, /etc/php/8.1/cli/conf.d/20-zip.ini, /etc/php/8.1/cli/conf.d/25-memcached.ini, /etc/php/8.1/cli/conf.d/25-swoole.ini, /etc/php/8.1/cli/conf.d/99-sail.ini\nDirective Local Value Master Value Docs\nxdebug.mode (through XDEBUG_MODE) develop,debug develop \nxdebug.start_with_request default default \nxdebug.start_upon_error default default \nxdebug.output_dir /tmp /tmp \nxdebug.use_compression 0 0 \nxdebug.trigger_value no value no value \nxdebug.file_link_format no value no value \nxdebug.filename_format no value no value \nxdebug.log no value no value \nxdebug.log_level 7 7 \nxdebug.var_display_max_children 128 128 \nxdebug.var_display_max_data 512 512 \nxdebug.var_display_max_depth 3 3 \nxdebug.max_nesting_level 256 256 \nxdebug.cli_color 0 0 \nxdebug.force_display_errors Off Off \nxdebug.force_error_reporting 0 0 \nxdebug.halt_level 0 0 \nxdebug.max_stack_frames -1 -1 \nxdebug.show_error_trace Off Off \nxdebug.show_exception_trace Off Off \nxdebug.show_local_vars Off Off \nxdebug.dump.COOKIE no value no value \nxdebug.dump.ENV no value no value \nxdebug.dump.FILES no value no value \nxdebug.dump.GET no value no value \nxdebug.dump.POST no value no value \nxdebug.dump.REQUEST no value no value \nxdebug.dump.SERVER no value no value \nxdebug.dump.SESSION no value no value \nxdebug.dump_globals On On \nxdebug.dump_once On On \nxdebug.dump_undefined Off Off \nxdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p \nxdebug.profiler_append Off Off \nxdebug.cloud_id no value no value \nxdebug.client_host host.docker.internal localhost \nxdebug.client_port 9003 9003 \nxdebug.discover_client_host Off Off \nxdebug.client_discovery_header no value no value \nxdebug.idekey no value no value \nxdebug.connect_timeout_ms 200 200 \nxdebug.scream Off Off \nxdebug.gc_stats_output_name gcstats.%p gcstats.%p \nxdebug.trace_output_name trace.%c trace.%c \nxdebug.trace_format 0 0 \nxdebug.trace_options 0 0 \nxdebug.collect_assignments Off Off \nxdebug.collect_return Off Off\n\nRun Code Online (Sandbox Code Playgroud)\n
小智 10
我有同样的问题。我通过更新 docker 的 php.ini 文件解决了这个问题。要更新 sail docker 的 php.ini,您必须按照以下步骤操作
这将在项目的根目录中创建 docker 文件夹。
[XDebug]
zend_extension = xdebug.so
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.discover_client_host = true
xdebug.idekey = VSC
xdebug.client_host = host.docker.internal
xdebug.client_port = 9003Run Code Online (Sandbox Code Playgroud)
使用以下命令刷新 sail docker 容器:
./vendor/bin/sail build --no-cache
将以下行添加到 .env 文件中
SAIL_XDEBUG_MODE=开发、调试
Laravel Sail 应该开箱即用。我制作了一个名为“Laravel Sail with PhpStorm”的 5 分钟视频,但它应该与具有您概述的配置的 VS Code 一起工作。
要找出某些功能不起作用的原因,您可以尝试调试xdebug_info()其中包含的文件。它会告诉您 Xdebug 是否(以及是否)尝试建立连接、连接到何处以及结果是什么。每条错误消息(如果存在)旁边还直接提供了文档链接。
你的日志说:
诊断日志 无消息
这意味着您没有通过触发器指示 Xdebug 启动调试会话。您需要告诉 Xdebug 启动一个。Laravel Sail 文档指出了有关如何执行此操作的Xdebug 文档。它建议您在想要或不想调试时使用提到的浏览器扩展之一来“单击”。
如果您需要更多调试信息,请创建一个日志文件并将其增加到 10:xdebug.log=/tmp/xdebug.log和xdebug.log_level=10.
| 归档时间: |
|
| 查看次数: |
5594 次 |
| 最近记录: |