Bon dieu Batman. C'était incroyablement frustrant. Voici un guide pour faire fonctionner xhprof. (Remarque: je suis très nouveau sur Linux. Je ne sais pas si les autorisations que j'utilise sont sûres, ou s'il existe une meilleure façon de le faire. Je ne ferais cela que dans un environnement de test.)
IMPORTANT: Il ne vous dira rien sur la façon de l'interpréter. Je ne sais pas comment faire, je suis juste content que ça marche.
Faire fonctionner XHProf
1. Quel système d'exploitation utilisez-vous?
Mac ou Linux?
C'est possible.
Les fenêtres?
Probablement pas. Pour exécuter xhprof sur Windows, vous devez avoir une DLL compilée. Il y a un lien vers un dans ce fil , mais j'ai toujours eu des problèmes de compatibilité avec lui lorsque j'ai essayé de l'utiliser sur XAMPP.
Je pense qu'il a été compilé avec une version différente d'Apache.
2. Faire fonctionner Ubuntu
C'est possible sur Mac. Voici deux liens utiles:
http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopard
http://www.midwesternmac.com/blogs/jeff-geerling / get-xhprof-working-well
Mais je ne l'ai pas fait. J'ai réussi à le faire fonctionner sur Ubuntu Server 13.04, bien que je pense que n'importe quelle version récente d'Ubuntu Server fonctionnerait.
J'ai installé mon serveur sur VirtualBox. VirtualBox est gratuit mais cela peut prendre un peu de temps pour apprendre à le configurer.
3.Installation de XHProf
Je vais supposer que nous avons un serveur Ubuntu pleinement fonctionnel.
Nous devons d'abord installer la poire. Nous l'utiliserons pour installer XHProf.
sudo apt-get install pear
Nous suivons cela avec phpdev qui est également nécessaire.
sudo apt-get install php5-dev
Si ces commandes ne fonctionnent pas et que je me trompe, continuez tout de suite avec:
sudo pecl install -f xhprof
Ubuntu vous dira ce qui vous manque et vous demandera de l'installer. Une fois que vous avez toutes les dépendances, installez xhprof.
Vous pourriez obtenir une erreur lors de l'installation de xhprof, il essaiera de télécharger la version bêta et échouera. Dans ce cas, essayez:
sudo pecl install -f xhprof-beta
Espérons que xhprof soit maintenant installé.
Maintenant, nous devons le configurer. Ouvrez votre php.ini qui se trouve sur /etc/php5/apache2/php.ini
et ajoutez les deux lignes suivantes sous la section extensions:
extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"
La deuxième ligne définit le répertoire de sortie. Si ce dossier n'existe pas, vous devrez le créer. Une fois le redémarrage effectué, apache
sudo service apache2 restart
4. Vérifier si XHProf est en cours d'exécution
Maintenant, nous devons vérifier si cela a fonctionné.
Test 1:
Entrer php -m
Si vous voyez xhprof dans la liste, vous êtes prêt à partir. Sinon, ne vous inquiétez pas, essayez plutôt de vérifier si cela fonctionne:
Accédez à votre racine Web /var/www/
et créez un fichier php avec uniquement:
phpinfo();
Enregistrez-le sous phpinfo.php. Ouvrez-le dans votre navigateur et vous devriez voir des informations PHP. Recherchez xhprof et si vous voyez cela, alors il fonctionne.
5. Faire fonctionner Drupal
Je ne pouvais pas le faire fonctionner avec le module Drupal. Au lieu de cela, je vais vous dire comment le faire fonctionner avec le module de développement.
D'abord une config que j'ai empruntée d' ici . Je n'ai pas vraiment suivi cette partie, mais ça marche donc cadeau cheval et tout ça.
Créez un nouveau fichier de configuration avec la commande suivante:
sudo nano /etc/apache2/conf.d/xhprof.conf
et insérez le code suivant.
alias /xhprof_html "/usr/share/php/xhprof_html/"
Ensuite, nous devons éventuellement créer un lien symbolique vers notre dossier xhprof_html. Donc, au cas où définir ceci:
ln -s / usr / share / php / xhprof_html / var / www / xhprof_html
Cela va créer un dossier dans votre racine Web qui pointe vers le fichier xhprof existant. Ensuite, dans votre navigateur, vous pouvez ouvrir http://mywebsitehere.com/xhprof pour voir toutes les exécutions que vous avez effectuées.
Redémarrez ensuite apache. Il est maintenant temps pour une petite configuration. Accédez aux paramètres de développement, activez xhprof et définissez:
xhprof directory = /usr/share/php
XHProf URL = /xhprof_html
Maintenant, au bas de chaque page, vous devriez voir un petit lien vers xhprof.
Et cliquer dessus devrait vous amener à une page qui ressemble à ceci. Vous avez terminé. Toutes nos félicitations!
Si cela n'a pas fonctionné et que vous obtenez des erreurs d'exécution, c'est probablement parce que Drupal n'a pas la permission d'écrire dans le dossier tmp que nous avons défini plus tôt, entrez donc:
sudo chown -R www-data /var/tmp/xhprof
Et j'espère que cela fonctionne. Avaient fini. Hoorah!
A moins que vous ne vouliez des fonctions graphiques. Heureusement, c'est aussi simple que:
sudo apt-get install graphviz
sudo service apache2 restart
Et maintenant, vous devriez avoir des fonctions graphiques. J'espère que cela aide!
/etc/apache2/conf.d
annuaire. J'ai faitsudo nano /etc/apache2/conf-enabled/xhprof.conf
et à laa2enconf xhprof
placephp5enmod xhprof
afin de créer le lien symbolique prioritaire du répertoire conf.d vers le fichier xhprof.ini du répertoire mods-available. Une autre façon de vérifier si xhprof est activé consiste à exécuterphp5-fpm -i | grep xhprof
, en remplaçant php5-fpm par le SAPI que vous vérifiez.