Estou tentando configurar uma VM do CentOS 5.5 / 64 bit para acessar um banco de dados Oracle remoto com scripts PHP e Perl. (Eu não tenho experiência com Oracle, apenas programei e administrei alguns PostgreSQl e MySQL antes.)
Eu instalei os seguintes rpms do Oracle Instant Client:
oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.2.0.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.2.0.x86_64.rpm
E adicionamos as seguintes variáveis ao meu .bash_profile:
export TNS_ADMIN=/etc
export ORACLE_HOME=/usr/lib/oracle/11.2
export LD_LIBRARY_PATH=$ORACLE_HOME/client64/lib
PATH=$PATH:$HOME/bin:/sbin:$ORACLE_HOME/client64/bin
No arquivo /etc/tnsnames.ora
, escrevi as informações recebidas do colega no site remoto que está executando o banco de dados Oracle:
some_string =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = my_address)(PORT = my_port))
)
(CONNECT_DATA =
(SERVICE_NAME = PDTT)
)
)
A parte interessante é que eu posso conectar-me a CLI agora executando
sqlplus 'my_user/my_password@//my_address:my_port/PDTT'
e, em seguida, pode ver algumas tabelas ao emitir:
select table_name from user_tables;
E também executei sudo pecl install oci8
com êxito, adicionei o arquivo /etc/php.d/oci8.ini
contendo:
extension=oci8.so
e pode ver a seguinte saída phpinfo ()
Agora,minhasperguntaseproblemas,porfavor:
1)ComodevoconfiguraravariávelORACLE_SIDecomochamarosqlplusdepoisdeconfigurada?Posso/devousaroORACLE_SIDdosscriptsPHPePerl?
2)Eucorrosudo-Eperl-MCPAN-eshell
efuncionabemaoinstalaroutrosmódulosPerl,maspara"install DBD :: Oracle" ele falha com:
CPAN.pm: Going to build T/TI/TIMB/DBD-Oracle-1.26.tar.gz
Using DBI 1.52 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
Configuring DBD::Oracle for perl 5.008008 on linux (x86_64-linux-thread-multi)
Remember to actually *READ* the README file! Especially if you have any problems.
The ORACLE_HOME environment variable value (/usr/lib/oracle/11.2) is not valid.
It must be set to hold the path to an Oracle installation directory
on this machine (or a machine with a compatible architecture).
For an Instant Client install, the directory should include an sdk subdirectory.
See the appropriate README file for your OS for more information.
ABORTED!
Running make test
Make had some problems, maybe interrupted? Won't test
Running make install
Make had some problems, maybe interrupted? Won't install
Ele menciona o diretório "sdk" acima, mas o rpm não tinha esse diretório:
# rpm -ql oracle-instantclient11.2-devel | grep -i sdk
#
Agradecemos sua sugestão e também dicas úteis para instalação e uso do Oracle. Há muitas informações da Oracle por aí, mas muitas vezes pressupõe que o Oracle esteja instalado na mesma máquina.