2011-11-10 7 views
12

Io uso XAMPP e l'ho configurato per disporre di host virtuali per ogni progetto che creo localmente.Il profiler Xdebug non funziona?

Nel mio php.ini ho abilitato xdebug e i miei script funzionano correttamente. Intendo dire che ogni volta che c'è un avviso, avviso, errore, vengono segnalati da xdebug.

Ora vorrei abilitare il profiler Xdebug, e devo apportare le seguenti modifiche nel mio php.ini al fine di consentire il profiler Xdebug per generare il file di registro:

; 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" 

ho riavviato il mio Apache , ma ancora quando eseguo i miei script non ci sono file generati nella cartella Profile.

C'è altro che devo fare?

Ho letto che al fine di consentire il Profiler: http://xdebug.org/docs/profiler


Dopo alcune ricerche, aggiungo che codice alla fine del index.php in un'installazione di WordPress ho nel mio server:

echo xdebug_get_profiler_filename(); 

Dopo eseguo il mio WordPress, a piè di pagina ottengo questo risultato:

D:/Web Development Projects/Profile/xdebug_profile._::1320916508_018294 

ma quando vado nella cartella

D:/Web Development Projects/Profile/ 

il file non è apparso lì? Qualche idea ?

+0

Ho dimenticato di scrivere che il sistema operativo è Windows –

risposta

14

Prima di tutto, è necessario assicurarsi che l'utente con cui viene eseguito il server Web abbia effettivamente le autorizzazioni di scrittura per la directory specificata, e deve esistere. E 'anche possibile che Xdebug non ama gli spazi nei percorsi, anche se questo dovrebbe funzionare bene, vorrei provare a impostare:

xdebug.profiler_output_dir = "D:/Web Development Projects/Profiler" 

Come il \ + char potrebbe essere una sequenza di escape.

+0

Lasciami provare. Risponderò qui tra un minuto –

+0

Ho appena fatto quel cambiamento e ancora niente. –

+2

Anche questa directory deve essere scrivibile – Webnet

21

Il problema risolto!

Il problema generato a causa del nome del file di registro.

ho appena cambiato in:

xdebug.profiler_output_name = "callgrind.out.%t-%s" 

e funziona correttamente!

+0

Nota il nome dovrebbe essere 'cachegrind' invece di' callgrind' se si sta utilizzando qualcosa come WinCacheGrind che riconosce solo un tipo di file. –