У меня странная проблема. Я установил 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 секунд загрузки страницы, и я не смог проследить его через код.
Прокомментируйте 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/
Кроме того, остерегайтесь ограничений доступа, таких как права доступа, группы, владелец и SElinux …
Требуется полный путь, а не только путь:
xdebug.profiler_append=1 xdebug.profiler_output_dir ="/home/username/debug/xdebug/profiler_output_dir" xdebug.profiler_output_name = "cachegrind.out.%s.%H"