Olá,
Compilei o php 4.4.0 com suporte ao instant client do oracle seguindo
as instruções daqui:
http://www.oracle.com/technology/pub/notes/technote_php_instant.html
O configure que eu usei foi esse:
-----------------------------------------
./configure --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu
--target=i386-conectiva-linux --program-prefix= --prefix=/usr
--exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
--sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include
--libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var
--sharedstatedir=/usr/com --mandir=/usr/share/man
--infodir=/usr/share/info --prefix=/usr --with-config-file-path=/etc
--enable-force-cgi-redirect --enable-calendar --enable-exif
--enable-ftp --enable-gd-native-ttf --enable-magic-quotes
--enable-memory-limit --enable-track-vars --with-exec-dir=/usr/bin
--with-expat-dir=/usr --with-freetype-dir=/usr --with-gd
--with-gettext  --with-mysql=shared,/usr --with-pgsql=shared
--with-ttf --with-xml --with-apxs2filter=/usr/sbin/apxs
--with-oci8-instant-client --with-interbase=/opt/firebird --with-zlib
------------------------------------------------------
esses dir eu copiei do pacote da conectiva, pra manter as localizações
de instalação padrão. Tenho então dois problemas:

- Quando criei o pacote rpm com chekinstall, o pacote resultante ficou
com dependência de duas bibliotecas: libclntsh.so.10.1 e
libfbembed.so.1, sendo essas libs do oracle instant client e a outra
do firebird, respectivamente. É importante notar, que de acordo com as
instruções no site do oracle, eu instalei tudo com os rpms deles (o
instant client e as headers dele), inclusive o firebird. Procurando
por esses arquivos no kpackage, vi que eles estão lá, fazem parte de
pacotes que estão instalados. Mas pra instalar esse rpm que gerei eu
sou obrigado a usar sempre --nodeps e --force. Faço duas perguntas
então: Tem como alterar esse pacote pra não ter esssas dependências?
Me parece que esse pacote está tentando encontrar essas libs em um
local específico, tem como saber onde é? (abri o pacote no kpackage e
não mostra o caminho, só o nome da lib)

- Mesmo forçando a instalação, consegui escrever um script que conecta
ao oracle e faz uma query. O problema é que ele só funciona chamando
pelo shell:
$ php teste.php
Mas pelo navegador, nada aparece, nenhum erro nem resultado. O php
funciona, dou echo, phpinfo(), etc...e aparece. Inclusive consegui
conectar ao firebird e ver o resultado de uma query normalmente pelo
navegador, mas oracle nada. Imagino que seja um problema de setar as
variáveis do sistema, visto que antes de eu chamar o php pelo shell eu
faço:
LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.3/client/lib:${LD_LIBRARY_PATH}
TNS_ADMIN=/home/suporte/smb/site/callcenter/includes
export LD_LIBRARY_PATH TNS_ADMIN
e logo em seguida inicio o apache. Depois, chamo o php no shell e
funciona, mas não funciona pelo apache. Alguém tem alguma idéia do que
pode ser?

Se alguém quiser o script, o meu httpd.conf ou o php.ini, estou as
ordens para fornecer.

OBS: Imagino que várias outras pessoas da lista já tiveram que
realizar essa tarefa , alguém fez um rpm que funcione perfeito e pode
disponibilizar?

Valeu pessoal
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a