Configurando suporte a ODBTP no PHP Ubuntu Server 9.04

A biblioteca ODBTP serve para acessar datasources ODBC remotamente. Um servidor é instalado no computador windows onde estão as fontes de dados odbc e um cliente é instalado no computador que vai acessar o odbc, sendo que o computador cliente pode ser Linux.

Neste exemplo será configurado o servidor ODBTP em uma máquina rodando windows server 2003, com uma fonte de dados que acessa uma base access (MDB).  Essa base será acessada via PHP em uma máquina Linux rodando Ubuntu Server 9.04.

Para iniciar baixe o ODBTP do site odbtp.sourceforge.net. A versão nesta data é a 1.1.4. Este mesmo arquivo será usado para instalar o serviço no windows e para instalar o client no Linux.

Instalação do ODBTP server no windows

Após descompactar o arquivo baixado, execute os seguinte procedimentos:

  1. Copie os arquivos odbtpctl.exe, odbtpsrv.exe e odbtpsrv.ini que estão no diretório winservice para um diretório de sua preferência.
  2. Abra o prompt de comando e acesse o diretório para onde foram copiados os arquivos.
  3. Execute os seguinte comandos para instalar e iniciar o serviço:
    odbtpctl install
    odbtpctl start

Feito isso o serviço do odbtp está instalado e funcionando no windows.  No site do odbtp existe uma documentação completa sobre os parâmetros que pode ser setados no servidor mas as opções padrão deverão ser suficientes.

Instalação do ODBTP client no linux

Agora vamos instalar o cliente no linux.  O mesmo arquivo baixado anteriormente contem os fontes para linux. Vamos extrair e instalar:

# tar xzf  odbtp-1.1.4.tar.gz

OBS: para computadores com sistema operacional 64 bits é necessário editar o arquivo odbtp.h e descomentar a seguinte linha:

/* #define _C_LONG_64_ 1 */

deve ficar:

#define _C_LONG_64_ 1

Caso isso não seja feito, ao tentar fazer uma conexão, um erro do tipo “invalid response” ocorrerá.

#./configure

#./make

#./make install

Agora vamos instalar o módulo/extensão odbtp para PHP usando pecl.

#sudo pecl install odbtp

Teoricamente isso deveria funcionar, no entanto eu tive problemas pois o instalador não encontrava o caminho do client odbtp que acabamos de instalar acima. Para resolver basta fazer a instalação manualmente.

O comando pecl install odbtp baixa o arquivos no diretório /tmp/pear/download/odbtp-1.1.4, basta acessar o diretório e fazer a instalação manualmente.

# ./configure

#./make

#./make install

Feito isso a extensão odbtp.so será copiada para o diretório de extensões do PHP. Agora basta habilitar a extensão. Crie um arquivo da seguinte forma:

#sudo vi /etc/php5/conf.d/odbtp.ini

Com o seguinte conteúdo:

extension=odbtp.so

Agora basta verificar usando a função phpinfo() para ver se o módulo foi habilitado.

Agora é necessário configurar a fonte de dados no Linux. Por padrão isso é feito no arquivo /usr/local/share/odbtp.conf.

Vamos criar uma entrada:

[nome_usado_no_php]
type = dsn
database = nome_dsn_no_windows
#convert datetime = yes

No site do odbtp tem instruções sobre como fazer conexões usando PHP.

Referências:

http://odbtp.sourceforge.net

Deixe uma resposta