当前位置:  开发笔记 > 编程语言 > 正文

PHP中的XDebug分析 - 无法获得输出

如何解决《PHP中的XDebug分析-无法获得输出》经验,为你挑选了3个好方法。

我有一个奇怪的问题.我已经设置了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秒的页面加载时间,我无法通过代码跟踪它.



1> Aiphee..:

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

所以,我已经设定了

xdebug.profiler_output_dir = /家庭/尔卡/ profile文件

设置777,现在好了.


有关于`PrivateTmp`设置[这里]的详细信息(https://securityblog.redhat.com/2014/04/09/new-red-hat-enterprise-linux-7-security-feature-privatetmp/).它"为已执行的进程设置一个新的文件系统命名空间,并在其中安装一个私有的`/ tmp`目录,该目录不会被命名空间外的进程共享.这意味着使用此标志运行的进程将看到一个不同且唯一的来自一个用户和其他守护进程的`/ tmp`看到或可以访问."

2> Hamid Nazari..:

注释掉xdebug.profiler_output_dir,xdebug.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"

3> Dimitris Bal..:

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

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

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

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有