【问题标题】:PHP Xdebug on Laravel 5.6 application not workingLaravel 5.6 应用程序上的 PHP Xdebug 无法正常工作
【发布时间】:2018-12-24 21:00:36
【问题描述】:

我使用 Laravel v5.6、PHP/php-fpm v7.2.4 和 Xdebug v2.6.0 在 Windows 10 上工作。

我的网站在本地运行。我为 Chrome 安装了附加的 Xdebug 助手,一切都按照本教程中的说明完成和配置: Laravel Development using PhpStorm

但是,Xdebug 仍然无法工作或调试,并且 Xdebug 出于任何原因无法工作,即使我在 PhpStorm 中单击调试按钮,它也会将我重定向到正确的页面但没有任何调试。

是否有人设法在 Laravel 项目中调试控制器或模型 PHP 代码并遇到同样的问题?

这是我的 Xdebug 设置:

php.ini

[xdebug]

zend_extension = c:\wamp64\bin\php\php7.2.4\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll
xdebug.remote_enable = 开启
xdebug.profiler_enable = 关闭
xdebug.profiler_enable_trigger = 关闭
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir =“c:/wamp64/tmp”
xdebug.show_local_vars=0

问题: 运行 Xdebug 后的结果,它将我移动到正确的索引页面,会话默认值如下:

http://localhost:8000/?XDEBUG_SESSION_START=14610

但没有对 PhpStorm 或任何正在运行的进程进行任何调试。

这是我的 composer.json:

"license": "MIT",
"type": "project",
"require": {
    "php": ">=5.6.4",
    "laravel/framework": "5.6.*",
    "laravelcollective/html": "5.6.*@dev",
    "yajra/laravel-datatables-oracle": "^7.7",
    "guzzlehttp/guzzle": "^6.2",
    "pusher/pusher-php-server": "^2.3",
    "zizaco/entrust": "1.7.*",
    "laravel/tinker": "^1.0",
    "laravel/dusk": "^1.0",
    "barryvdh/laravel-debugbar": "^2.4",      
    "intervention/image": "dev-master",
    "squizlabs/php_codesniffer": "^3.0",
    "phpunit/phpunit": "^5.7",
    "maatwebsite/excel": "^2.1",
    "league/fractal": "^0.16.0",
    "dompdf/dompdf": "^0.8.0",
    "barryvdh/laravel-dompdf": "^0.8.0",
    "facebook/php-ads-sdk": "2.11.*",
    "facebook/php-sdk-v4" : "~5.0",
    "consoletvs/charts": "5.*",
    "doctrine/dbal": "^2.5",
    "mpociot/laravel-apidoc-generator": "^2.0",
    "darkaonline/l5-swagger": "5.4.*",
    "tymon/jwt-auth": "^0.5.12",
    "splitbrain/php-archive": "^1.0",
    "laravel/cashier": "~7.0",
    "maddhatter/laravel-fullcalendar": "^1.3",
    "gr8shivam/laravel-sms-api": "^2.0",
    "barryvdh/laravel-ide-helper": "^2.4"
},

【问题讨论】:

  • 1) 显示 phpinfo() 输出的 xdebug 部分。到目前为止,您提供的设置并没有提供太多信息。顺便说一句,这不需要 composer.json ... 而 Laravel 5.6 需要 PHP 7.1+ .. 所以你的作曲家要求有点老了... 2) confluence.jetbrains.com/display/PhpStorm/…
  • 尝试添加`xdebug.remote_connect_back`设置
  • 你好像没有设置端口?
  • 我试着用更多的数字让它更清楚,但我做不到。也许因为我还是新来的,所以我需要获得更多的声誉。一旦我获得足够的声誉,将尝试添加更多细节并稍后计算。
  • 至少在 php.ini 和 PhpStorm 设置中将 xdebug 端口更改为 9001 - 使用 php-fpm 很可能是问题所在。除此之外 - 收集 xdebug 日志并提供您的设置 - 即使信誉 = 1 也足以编辑您自己的问题并提供该信息。

标签: php laravel phpstorm xdebug


【解决方案1】:

这是我的配置:

xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9001
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
xdebug.idekey="PHPSTORM"
xdebug.max_nesting_level = 250

通常调试端口是 9000,但如果您使用 PHP-FPM,它可能已经在端口 9000 上,所以我将其设置为 9001。

连接回设置允许您通过浏览器书签或插件按钮触发调试。 Autostart 每次都会启动一个调试会话,所以我把它关掉了。嵌套级别用于 var_dumps 等,让您以更少的点查看更多细节...。 我将 IDE 密钥设置为 PHPStorm,并将其与端口一起设置在 IDE 中。

那应该是你的好去处!确保您的 IDE 实际上正在侦听连接,并且在您的浏览器中通过您已打开调试的按钮或书签进行侦听。

我为 Firefox 使用了一个不错的 XDebug 助手来切换它。

祝你好运!

【讨论】:

    猜你喜欢
    • 2019-01-25
    • 1970-01-01
    • 2019-04-16
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2017-12-08
    • 1970-01-01
    相关资源
    最近更新 更多