Недавно я установил Xdebug на свой сервер с намерением использовать его для профилирования кода. Кажется, он установлен правильно, и phpinfo перечисляет следующее:
xdebug.profiler_enable On On
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /var/www/vhosts/xdebug /var/www/vhosts/xdebug
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p
Однако, хоть убей, я не могу понять, почему не создаются cachgrind, когда я запускаю скрипты PHP.
Я что-то упускаю или понимаю неправильно?
Думаю, уже поздно давать ответ.
Я установил xdebug с помощью pecl, я только что активировал его в /etc/php5/apache2/php.ini, добавив
extension=xdebug.so
xdebug.default_enable=1; in my setting, i set this parameter to 0
xdebug.scream=1
xdebug.profiler_enable=1 ; this activate the profiler by default.
;You can put it off (0), but should activate it by triggring.
xdebug.profiler_enable_trigger=1
; if you do like this, you need to call your script by adding XDEBUG_PROFILE=1
;to your url for example: http://mytest/test.php?XDEBUG_PROFILE=1
вам следует перезапустить свой веб-сервер и вызвать страницу php из навигатора. Вывод по умолчанию будет создан в / tmp.
Надеюсь на эту помощь.
Попробуйте удалить параметры
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /var/www/vhosts/xdebug /var/www/vhosts/xdebug
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p
Первый в любом случае используется по умолчанию, поэтому он избыточен. Удаление двух других позволит вам понять, что проблема в этих параметрах или в чем-то еще.
Перезапустите Apache, перейдите на страницу php и посмотрите, создается ли какой-либо вывод в / tmp. это расположение по умолчанию для выходных журналов.
Если что-то сгенерировано, вы можете быть уверены, что это проблема с разрешениями вашего выходного каталога.
Проверьте владельца файла, созданного в / tmp, и убедитесь, что у пользователя есть права на запись в / var / www / vhosts / xdebug (из исходной конфигурации), и повторно добавьте параметры, которые у вас были изначально.