Профилирование 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...