Я использую XAMPP, и я настроил его, чтобы иметь виртуальные хосты для каждого проекта, который я создаю локально.
В моем php.ini я включил xdebug, и мои скрипты работают исправно. Я имею в виду, что всякий раз, когда появляется предупреждение, уведомление, ошибка, сообщается xdebug.
Теперь я хотел бы включить профайлер Xdebug, и я внесли следующие изменения в свой php.ini, чтобы позволить профилировщику Xdebug генерировать файл журнала:
; xdebug.profiler_enable ; Type: integer, Default value: 0 ; Enables Xdebugs profiler which creates files in the profile output directory. Those files can be ; read by KCacheGrind to visualize your data. This setting can not be set in your script with ini_set ; (). xdebug.profiler_enable = 1 ; xdebug.profiler_output_dir ; Type: string, Default value: /tmp ; The directory where the profiler output will be written to, make sure that the user who the PHP ; will be running as has write permissions to that directory. This setting can not be set in your ; script with ini_set(). xdebug.profiler_output_dir ="D:\Web Development Projects\Profile"
Я перезапускаю свой Apache, но все же, когда я запускаю свои скрипты, в папке Profile нет файла.
Есть ли что-нибудь еще, что я должен сделать?
Я прочитал, что для включения Profiler: http://xdebug.org/docs/profiler
После некоторых исследований я добавляю этот код в конец index.php в установке WordPress, которую я имею на своем сервере:
echo xdebug_get_profiler_filename();
После того, как я запустил WordPress, на нижнем колонтитуле я получаю такой результат:
D:/Web Development Projects/Profile/xdebug_profile._::1320916508_018294
но когда я иду в папку
D:/Web Development Projects/Profile/
файл там не появился? Есть идеи ?
Прежде всего, вам нужно убедиться, что пользователь, на котором работает ваш веб-сервер, фактически имеет права на запись в указанный вами каталог, и он должен существовать. Также возможно, что Xdebug не любит пробелы в дорожках, хотя это должно работать нормально, я бы попытался установить:
xdebug.profiler_output_dir = "D:/Web Development Projects/Profiler"
Поскольку символ \ + может быть escape-последовательностью.
Проблема решена!
Проблема возникла из-за имени файла журнала.
Я просто изменил его на:
xdebug.profiler_output_name = "callgrind.out.%t-%s"
и работает правильно!