PHP: Instalando a extensão SVN no Ubuntu 9.04

Recentemente estive envolvido em um projeto que necessitava interagir com um repositório SVN (controle de versão? Não tem idéia do que é isso? Dê uma lida neste artigo). Era o básico, checkout e commit de arquivos, nada muito complexo. Para minha surpresa, o PHP não tem nenhuma função nativa de acesso a repositórios SVN, então a busca pela iluminação começou.
Primeiro pensei em usar a função exec() e só passar os comandos para ela. Isso resolve, mas é um tanto quando deselegante, pessoalmente achei até um pouco grosseiro, além de que rodar um exec() no servidor nunca é bem visto. Mas funciona!
Como a idéia é sempre a melhor implementação (ou pelo menos o mais próximo possível disso), continuei minhas buscas pelo oráculo. Acabei me deparando com uma extensão PECL que fazia exatamente o que eu precisava, a PHP SVN.
Dentre a lista de funções existentes, estão as funções básicas que eu precisava, checkout e commit , até mais avançadas, com parâmetros para a autenticação em servidores que requerem tal segurança.
Instalação
A instalação via PECL é bem simples, se não fosse por alguns problemas de dependência que encontrei pelo caminho. Como não há necessidade alguma de vocês passarem pelos mesmos “apertos” pelos quais eu passei, segue o passo a passo:
1º Passo – As dependências
Existem algumas dependências necessárias para instalar o pacote PECL do SVN, segue o comando para instalar todas:
sudo apt-get update && sudo apt-get install php5-dev libsvn-dev \ libsasl2-dev libsasl2-modules-ldap libneon27-gnutls-dev
2º Passo – O pacote PECL
Depois de as dependências todas estarem instaladas, vamos para a instalação do pacote PECL SN:
sudo pecl install -f svn
3º Passo – Configurando o PHP.ini
Para finalizar, como super usuário, digite o seguinte comando no terminal:
echo extension=svn.so >> /etc/php5/apache2/php.ini
Feito isso, para o apache reconhecer a extensão, ele deve ser reiniciado:
sudo apache2ctl restartPronto! Já estão disponíves no servidor as funções da extensão em seus scripts.
Referências:


