Instalando e Configurando o profiler XHProf no PHP Apache e Drupal 7
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.