PHP中的XDebug评测-can';得不到输出
我有一个奇怪的问题。我已经设置了XDebug来评测我们正在开发的一个PHP应用程序。我相信所有的设置都是正确的,但是我运行它时没有得到任何输出。我的配置如下所示:PHP中的XDebug评测-can';得不到输出,php,profiling,xdebug,Php,Profiling,Xdebug,我有一个奇怪的问题。我已经设置了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 o
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秒,我无法通过代码跟踪它。注释出xdebug.profiler\u output\u dir
和xdebug.profiler\u output\u name
并查看是否可以在/tmp//code>下找到输出。此问题的另一个可能原因是对分析器输出目录
向组和所有者添加写入权限为我解决了问题:
sudo chmod go+w /home/dimitris/cachegrind/
另外,请注意访问限制,如访问权限、组、所有者和SElinux…某些发行版上的/tmp文件夹也存在问题,我无法在centos 7上获得输出,然后我发现
所以,我已经准备好了
xdebug.profiler\u output\u dir=/home/jirka/profile
chmod 777/home/jirka/profile
现在可以了。需要完整路径,而不仅仅是路径:
xdebug.profiler_append=1
xdebug.profiler_output_dir ="/home/username/debug/xdebug/profiler_output_dir"
xdebug.profiler_output_name = "cachegrind.out.%s.%H"
哈米德,原来你走的是对的。我忘了把输出目录的完整路径放进去。最后的解决方案是:xdebug.profiler\u append=1 xdebug.profiler\u output\u dir=“/home/username/debug/xdebug/profiler\u output\u dir”xdebug.profiler\u output\u name=“cachegrind.out.%s.%H”非常感谢@HamidNazari。你救了我一天:)真的。由于权限的原因,apache无法写入定义的用户目录也存在同样的问题。有关PrivateTmp
设置的详细信息。它“为已执行的进程设置一个新的文件系统命名空间,并在其中装载一个私有的/tmp
目录,该目录不由命名空间之外的进程共享。这意味着使用此标志运行的进程将从用户和其他守护进程看到或可以访问的目录中看到不同且唯一的/tmp
。”谢谢你。事实证明,我的OpenSUSE 13.1具有相同的配置,将探查器输出移到别处解决了问题。注意:这是OP在他们的问题中提供的解决方案。