Buon Dio Batman. È stato incredibilmente frustrante. Ecco una guida per far funzionare xhprof. (Nota: sono molto nuovo su Linux. Non sono sicuro se le autorizzazioni che utilizzo siano sicure o se esiste un modo migliore per farlo. Lo farei solo in un ambiente di test.)
IMPORTANTE: non ti dirà nulla su come interpretarlo. Non ho idea di come, sono solo felice che funzioni.
Far funzionare XHProf
1. Quale sistema operativo stai utilizzando?
Mac o Linux?
È possibile.
Finestre?
Probabilmente no. Per eseguire xhprof su Windows devi avere una DLL compilata. C'è un link a uno in questo thread , ma ho sempre avuto problemi di compatibilità con esso quando ho provato ad usarlo su XAMPP.
Penso che sia stato compilato con una versione diversa di Apache.
2. Far funzionare su Ubuntu
È possibile su Mac. Ecco due link utili:
http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopard
http://www.midwesternmac.com/blogs/jeff-geerling / getting-xhprof-lavoro-bene
Ma non l'ho fatto. Sono riuscito a farlo funzionare su Ubuntu Server 13.04, anche se penso che qualsiasi versione recente di Ubuntu Server funzionerebbe.
Ho configurato il mio server su VirtualBox. VirtualBox è gratuito ma potrebbe essere necessario un po 'di tempo per imparare come configurarlo.
3.Installazione di XHProf
Presumo che abbiamo un Ubuntu Server perfettamente funzionante.
Per prima cosa dobbiamo installare pear. Useremo questo per installare XHProf.
sudo apt-get install pear
Seguiamo questo con phpdev, che è anche necessario.
sudo apt-get install php5-dev
Se questi comandi non funzionano e li ho sbagliati, vai avanti con:
sudo pecl install -f xhprof
Ubuntu ti dirà cosa ti manca e ti darà la richiesta di installarlo. Una volta che hai tutte le dipendenze installa xhprof.
Potresti ricevere un errore durante l'installazione di xhprof, proverà a scaricare la beta e fallirà. In tal caso, prova:
sudo pecl install -f xhprof-beta
Spero che xhprof sia ora installato.
Ora dobbiamo configurarlo. Apri php.ini che si trova in /etc/php5/apache2/php.ini
e aggiungi le seguenti due righe nella sezione estensioni:
extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"
La seconda riga imposta la directory di output. Se questa cartella non esiste, dovrai crearla. Dopo aver riavviato Apache con
sudo service apache2 restart
4. Verifica se XHProf è in esecuzione
Ora dobbiamo verificare se ha funzionato.
Test 1:
accedere php -m
Se vedi xhprof nell'elenco, sei a posto. In caso contrario, non ti preoccupare, prova invece a verificare se funziona:
Vai al tuo webroot /var/www/
e crea un file php con solo:
phpinfo();
Salvalo come phpinfo.php. Apri questo nel tuo browser e dovresti vedere le informazioni PHP. Cerca xhprof e se vedi questo allora è in esecuzione.
5. Far funzionare con Drupal
Non riuscivo a farlo funzionare con il modulo Drupal. Quindi, invece, ti dirò come farlo funzionare con il modulo di sviluppo.
Prima alcune configurazioni che ho preso in prestito da qui . Non ho davvero seguito questa parte, ma funziona così tanto cavallo da regalo e tutto il resto.
Crea un nuovo file di configurazione con il seguente comando:
sudo nano /etc/apache2/conf.d/xhprof.conf
e inserisci il seguente codice.
alias /xhprof_html "/usr/share/php/xhprof_html/"
Quindi potremmo eventualmente creare un link simbolico alla nostra cartella xhprof_html. Quindi, nel caso in cui imposta questo:
ln -s / usr / share / php / xhprof_html / var / www / xhprof_html
Questo creerà una cartella nella tua webroot che punta al file xhprof esistente. Quindi nel tuo browser puoi aprire http://mywebsitehere.com/xhprof per vedere tutte le corse che hai fatto.
Quindi riavviare apache. Ora è tempo di fare una piccola configurazione di sviluppo. Vai alle impostazioni di sviluppo, abilita xhprof e imposta:
xhprof directory = /usr/share/php
XHProf URL = /xhprof_html
Ora in fondo a ogni pagina dovresti vedere un piccolo link a xhprof.
E facendo clic su di esso dovresti accedere a una pagina simile a questa. Hai finito. Congratulazioni!
Se ciò non ha funzionato e si verificano errori di esecuzione è probabilmente perché Drupal non dispone dell'autorizzazione per scrivere nella cartella tmp che abbiamo impostato in precedenza, quindi immettere:
sudo chown -R www-data /var/tmp/xhprof
E speriamo che funzioni. Sono stati fatti. Hoorah!
A meno che tu non voglia funzioni grafiche. Per fortuna è facile come:
sudo apt-get install graphviz
sudo service apache2 restart
E ora dovresti avere funzioni grafiche. Spero che questo aiuti!