quarta-feira, 7 de dezembro de 2005

PHP 5.1.1 e Oracle 10g

Tive de fazer semana passada uma baita obra pra compilar o PHP 5.1.1 com suporte ao Oracle 10g.

Lamentável!!!

Pra começar baixei o client do site da Oracle mesmo. Mais de 350 Mb, mas aí tudo bem. O que me admirou foi que ele vem num arquivo .cpio gzipado, então tive de usar o cpio pra abrir o mesmo. Mas pra q complicar né ???

Como ia instalar em um servidor de um cliente (que não tem X) tive antes de exportar o X pra rodar pois o instalador do mesmo é somente em mode gráfico.

Além disso como ele não tem suporte oficial ao Debian, tive de criar o arquivo /etc/redhat-release com o conteúdo Red Hat Linux Advanced Server release 2.1AS (Pensacola) para enganar o instalador.

Depois disso a instalação foi barbada. Tem um help em HTML que vem junto com o cliente e diz tudo que é necessário. No final instalei na pasta /home/oracle/OraHome_1 que foi a que o instalador sugeriu.

O problema mesmo foi a compilação do PHP. Foi um parto.

Algumas dicas:

Compilei com o seguinte configure:

/configure --prefix=/usr/local/php5 --with-apxs2=/usr/bin/apxs2 --with-mcrypt --with-gettext --with-mhash --enable-ftp --with-gd --with-zlib-dir=/usr/lib --with-oci8=/home/oracle/OraHome_1/ --enable-sigchild --with-imap --with-ldap --with-pear --with-openssl --with-kerberos --with-imap-ssl --no-create --no-recursion --with-mime-magic --enable-mbstring

Tive de descompactar o seguinte arquivo .jar: Disk1/stage/Components/oracle.rdbms.oci/10.1.0.3.0/1/DataFiles/include.jar para pegar os includes do Oracle e colocar na pasta /home/oracle/OraHome_1/rdbms/public, pq os mesmos não eram instalados por padrão. Vê se pode.

Além disso, tive de rodar um sudo ln -s libclntsh.so.10.1 libclntsh.so na pasta /home/oracle/OraHome_1/lib pq o PHP não identificava o arquivo.

Depois disso tudo ok, mas foi realmente uma luta.

Aos que tiverem o mesmo problema, espero ter ajudado...

Até.