Профилирование XDebug в PHP - невозможно получить вывод

У меня странная проблема. Я настроил 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 секунд, и я не смог отследить его через код.

5 ответов

Решение

Закомментируйте xdebug.profiler_output_dir а также xdebug.profiler_output_name и посмотреть, можете ли вы найти выход под /tmp/,

В некоторых дистрибутивах также есть проблема с папками /tmp, я не могу получить выходные данные на centos 7, а потом я нашел это

Итак, я установил

xdebug.profiler_output_dir=/ дом / Ирка / Профиль

установите 777 и теперь все в порядке.

Другая возможная причина этой проблемы - права доступа к папке profiler_output_dir.

Добавление разрешений на запись в группу и владельца решило проблему для меня:

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

Требовался полный путь, а не только путь:

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

Также остерегайтесь ограничений доступа, таких как права доступа, группы, владелец и SElinux...

Другие вопросы по тегам