John Swaringen
John Swaringen

Reputation: 751

XDebug profiling in PHP - can't get output

I've got a strange issue. I've setup XDebug to profile a PHP application we're working on. I believe everything is setup correctly but I get no output when I run it. My configuration looks like this:

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"

All the phpinfo() settings match up like they should. The permissions on the output directory are set to 777 right now just so I can test it. I've tried using a directory under public_html as well but no luck. The URL I'm using to launch the profiler is:

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

Neither works. Any help would be GREATLY appreciated!! This app has a 5-6 second page load time and I haven't been able to trace it through code.

Upvotes: 14

Views: 22447

Answers (5)

Aiphee
Aiphee

Reputation: 9156

There is also problem with /tmp folders on some distributions, i couldnt get output on centos 7 and then i found this

So, i have set

xdebug.profiler_output_dir=/home/jirka/profile

chmod 777 /home/jirka/profile and its ok now.

Upvotes: 19

k0pernikus
k0pernikus

Reputation: 66797

The full path was required, not just the path:

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

Upvotes: 1

greg
greg

Reputation: 767

Also, beware of access restrictions, such as access rights, groups, owner and SElinux...

Upvotes: 1

Dimitris Baltas
Dimitris Baltas

Reputation: 3265

Another possible cause of this issue is the permissions on the folder of profiler_output_dir.

Adding write permissions to the group and owner resolved the issue for me:

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

Upvotes: 6

Hamid Nazari
Hamid Nazari

Reputation: 3983

Comment out xdebug.profiler_output_dir and xdebug.profiler_output_name and see whether you can find the output under /tmp/.

Upvotes: 11

Related Questions