Nosso primeiro passo é instalar as ferramentas adequadas.
Instalando o php-pear e php5-dev
O PHP-PEAR é um conjunto de ferramentas que auxilia a instalação de várias extensões no php, como por exemplo: xdebug, oci8, pdo etc.
Para instalar o php-pear basta entrar em um console e executar:
# apt-get install php-pear
O PHP5-DEV é um pacote onde estão todas as bibliotecas usadas pelo php para compilar extensões e recompilar o próprio php. Para instalá-lo basta executar:
# apt-get install php5-dev
Instalando o xdebug
Tendo o php-pear instalado, fica fácil instalar o xdebug. Há dois métodos: um automático, onde é usado apenas um comando e outro manual, onde é necessário baixar arquivo e executar uma série de comandos.
Instalando o Xdebug automaticamente:
Utilizando um terminal e tendo poderes de administrador executando o comando
# pecl install xdebug
O restante será efetuado automaticamente, sem problemas.
Instalando o Xdebug manualmente:
Caso a instalação automática falhe, é possível fazer manualmente. Para isso, basta seguir os seguintes passos:
- baixar os fontes em tgz (source) do xdebug: http://xdebug.org/
- explodir o arquivo baixado: tar zxvf xdebug-versao.tgz
- entrar no diretório criado e executar o comando phpize
- executar ./configure
- executar make
- executar make install (como root)
Configurando o xdebug
Instalamos o xdebug, porém ele ainda não está configurado no php. O Apache no Ubuntu tem uma estrutura toda descentralizada, isto é, existem vários arquivos de configuração, o PHP segue a mesma lógica, tendo as configurações das extensões em arquivos diferentes do php.ini.
O diretório que o php utiliza para guardar as configurações das extensões é "/etc/php5/conf.d". Lá podemos criar um arquivo chamado xdebug.ini que conterá as seguintes linhas:
A primeira linha diz que estamos utilizando uma extensão zend e temos que passar o caminho completo da extensão.
zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so"
xdebug.remote_port = 9100 # porta que o xdebug responderá
xdebug.remote_handler="dbgp" # valor padrão
xdebug.remote_host="localhost" # endereço do host que o xdebug estará rodando
xdebug.remote_enable = On # On habilita o debugger remoto, Off desabilita
Podemos ainda adicionar o profiler, que mapeará todas as funções, objetos que estão sendo utilizadas no script. Para habilitar o profiler adicionamos mais duas linhas:
xdebug.profiler_enable = On #habilitar o profiler com On e desabilita com Off
xdebug.profiler_output_name = cachegrind.out #arquivo onde ficará guardado o mapeamento
Para poder ler um arquivo de mapeamento podemos utilizar as ferramentas WinCacheGind para Windows ou KcacheGrind para
Linux.
No próximo passo vamos configurar o PDT.