【问题标题】:XDebug profiling in PHP - can't get outputPHP中的XDebug分析 - 无法获得输出
【发布时间】:2011-03-27 21:39:18
【问题描述】:

我有一个奇怪的问题。我已经设置 XDebug 来分析我们正在开发的 PHP 应用程序。我相信一切设置正确,但运行时没有输出。我的配置如下:

zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
[XDebug]
xdebug.profiler_append = 1
xdebug.profiler_enable = 0 (I've tried this both on and off)
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "/debug/xdebug/profiler_output_dir"
xdebug.profiler_output_name = "cachegrind.out.%p"

所有phpinfo() 设置都应该匹配。输出目录的权限现在设置为 777,以便我可以测试它。我也尝试过使用 public_html 下的目录,但没有运气。我用来启动分析器的 URL 是:

http://example.com/my_page.php?XDEBUG_PROFILE
-or-
http://example.com/my_page.php?XDEBUG_PROFILE=1

两者都不起作用。任何帮助将不胜感激!!此应用的页面加载时间为 5-6 秒,我无法通过代码对其进行跟踪。

【问题讨论】:

    标签: php profiling xdebug


    【解决方案1】:

    xdebug.profiler_output_dirxdebug.profiler_output_name注释掉,看看能不能在/tmp/下找到输出。

    【讨论】:

    • 哈米德,原来你是在正确的轨道上。我忘记将完整路径放入输出目录。这是最终的解决方案: xdebug.profiler_append=1 xdebug.profiler_output_dir ="/home/username/debug/xdebug/profiler_output_dir" xdebug.profiler_output_name = "cachegrind.out.%s.%H"
    • 非常感谢@HamidNazari。你拯救了我的一天:)
    【解决方案2】:

    此问题的另一个可能原因是 profiler_output_dir 文件夹的权限。

    向组和所有者添加写入权限为我解决了这个问题:

    sudo chmod go+w /home/dimitris/cachegrind/
    

    【讨论】:

      【解决方案3】:

      另外,请注意访问限制,例如访问权限、组、所有者和 SElinux...

      【讨论】:

      • 确实如此。由于权限,apache 无法写入定义的用户目录时遇到同样的问题
      【解决方案4】:

      某些发行版上的 /tmp 文件夹也有问题,我无法在 centos 7 上获得输出,然后我发现 this

      所以,我已经设置了

      xdebug.profiler_output_dir=/home/jirka/profile

      chmod 777 /home/jirka/profile 现在可以了。

      【讨论】:

      • 有更多关于PrivateTmp设置here的信息。它“为已执行的进程设置了一个新的文件系统命名空间,并在其中挂载了一个私有的/tmp 目录,该目录不被命名空间之外的进程共享。这意味着使用此标志运行的进程将看到不同且唯一的@ 987654326@ 来自一个用户和其他守护程序看到或可以访问。”
      • 谢谢。事实证明,我的 OpenSUSE 13.1 具有相同的配置,将探查器输出移到其他地方解决了这个问题。
      【解决方案5】:

      需要完整路径,而不仅仅是路径:

      xdebug.profiler_append=1
      xdebug.profiler_output_dir ="/home/username/debug/xdebug/profiler_output_dir"
      xdebug.profiler_output_name = "cachegrind.out.%s.%H"
      

      【讨论】:

      • 注意:这是 OP 在他们的问题中提供的解决方案。
      猜你喜欢
      • 2011-08-05
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 2021-08-31
      相关资源
      最近更新 更多