Instalando e Configurando o profiler XHProf no PHP Apache e Drupal 7

Um profiler é ferramenta essencial para desenvolvimento profissional em PHP

Instalar o XHProf é bastante trivial:

 sudo pecl install xhprof

Mas aí você pode cair neste erro aqui:

Failed to download pecl/xhprof within preferred state "stable", latest release is version 0.9.4, stability "beta", use "channel://pecl.php.net/xhprof-0.9.4" to install
install failed

Mas não tema, basta configurarmos nosso PEAR para buscar pacotes beta e lá vamos nós:

sudo pecl config-set preferred_state beta
sudo pecl install xhprof

Normalmente isso é o suficiente para instalar o xhprof. Se você tiver qualquer problema diferente, coloque nos comentários abaixo que vou tentar criar uma base de conhecimento a respeito da instalação do xhprof.

Acho bom voltar à configuração padrão do PEAR para stable, então:

sudo pecl config-set preferred_state stable

Configuração do PHP e Apache

Agora vamos configurar o XHProf, primeiro criamos uma pasta onde ficarão os dados do profiler:

mkdir /tmp/xhprof
chmod 777 /tmp/xhprof

E então vamos precisar configurar o PHP, para habilitar a extensão (se você reparou na instalação do XHProf ele coloca a mensagem: "configuration option "php_ini" is not set to php.ini location You should add "extension=xhprof.so" to php.ini")

Normalmente, o PHP vai ler todos os arquivos *.ini localizados na pasta /conf.d, por isso criamos um arquivo /etc/php5/conf.d/xhprof.ini com o seguinte conteúdo:

[xhprof]
extension=xhprof.so
xhprof.output_dir="/tmp/xhprof"

A última etapa é criar um alias no Apache para os relatórios do xhprof. O Apache tb lê os arquivos da pasta conf.d, mas desta vez use a extensão .conf, ou seja: /etc/apache2/conf.d/xhprof.conf:

alias /xhprof_html "/usr/share/php/xhprof_html/"

O caminho "/usr/share/php" é o default para a instalação via PEAR da extensão xhprof. Você pode confirmar listando o conteúdo dessa pasta e vericando que existem duas pastas com o nome xhprof nelas.

Restarte o apache com sudo service apache2 restart e pronto!

Configuração Drupal 7

Para visualizar os relatórios do XHProf no Drupal é muito fácil: instale o devel!

Configure na página de configuração do módulo as variáveis:

devel_xhprof_directory "/usr/share/php"
devel_xhprof_url "/xhprof_html"

E veja suas páginas sendo renderizadas com um lindo profiler!

Dica Final

Para finalizar, mais uma pequena dica, se você não quiser ter o trabalho de ativar manualmente as extensões instaladas via PEAR (ou seja, via comando pecl install), então você pode executar o seguinte comando:

pecl config-set php_ini /path/to/php.ini

Alterando claro o "/path/to" para o caminho correto ao seu php.ini. Dessa forma o próprio PEAR irá colocar a linha que ativa a extensão no seu arquivo php.ini.

Particularmente, eu prefiro fazer isso manualmente, assim criamos um arquivo para cada extensão do PHP instalada.