Xhprof + PHP5.4 + Ubuntu + Chamilo 1.10dev

(Read the update below before starting to copy-paste)

To install Xhprof on PHP5.4 on Ubuntu (assuming you’ve already got PHP5.4 from Andrej or somewhere safe) in order to measure the load of Chamilo 1.10 dev (you need to have a mercurial clone, otherwise the “tests” directory will not exist), follow this procedure (all lines prefixed with # are comments):

cd /tmp
sudo apt-get install php5-dev php-pear
pecl bundle xhprof
cd xhprof

# Here you will have to apply the patch mentioned here: https://bugs.php.net/bug.php?id=61674 to your extension/xhprof.c file (otherwise it won’t compile with PHP 5.4).

phpize
./configure
make
sudo make install

UPDATE 10/2014: On Ubuntu 14.04, you can now install Xhprof with just:

sudo apt-get install php5-xhprof

Then edit the config file

 sudo vim /etc/php5/apache2/conf.d/20-xhprof.ini

xhprof-make

# Add the following:

extension=xhprof.so
xhprof.output_dir=/tmp

# Save

# In your VirtualHost definition (or simply in your /etc/php5/apache2/php.ini), declare the auto_prepend_file and auto_append_file config vars:

 php_value auto_prepend_file /var/www/chamilo/tests/xhprof/header.php
 php_value auto_append_file /var/www/chamilo/tests/xhprof/footer.php

xhprof-vhost

# Now restart Apache:

sudo /etc/init.d/apache2 restart

Load your Chamilo page. You should now see a little “Profiler output” link in the bottom left corner of the page. That’s it, you can now use Xhprof.

xhprof-link
xprof-report

There are a few nice hidden features in xhprof, like the possibility to *compare* two page loads. Search the web for more info (e.g. Viewing a Diff Report).

xhprof-callgraph

Notes @2014-03-20:

  • Following recent tests, it appears like you have to go into the “/tmp/xhprof/extension” directory before launching “phpize” as indicated above
  • If you installed PHP5.5 on a recent version of Ubuntu, you will find that most of the above is unnecessary, and that you can simply launch a “sudo apt-get install php5-xhprof” and then create your 20-xhprof.ini file, and you’ll have xhprof running
  • You might need to update the path in chamilo/tests/xhprof/footer.php, as it is currently hardcoded to “my.chamilo.net”. Make sure you give it the address that you are really using
It's only fair to share...Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Tumblr
Tumblr
Email this to someone
email

Leave a Reply

Your email address will not be published. Required fields are marked *