Retirado de John Wendell
-
Baixe o Oracle Instant Client em http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
- Baixe os arquivos Basic, SDK e SQL*Plus, salve-os em uma pasta temporária.
- Descompacte os três arquivos (.zip) no diretório /usr/lib/instantclient
- Crie um link simbólico:
cd /usr/lib/instantclient sudo ln -s libclntsh.so.10.1 libclntsh.so
- Ajustar o ldconfig para essa pasta:
sudo sh -c “echo /usr/lib/instantclient >> /etc/ld.so.conf” sudo ldconfig - Ajustando o SQL*Plus
sudo ln -s /usr/lib/instantclient/sqlplus /usr/bin/sqlplus
. Pronto! Está instalado. Para testar, você pode usar o SQL*Plus.
sqlplus system/manager@//servidor_oracle/sid
Perceba que usei a sintaxe nova do SQL*Plus para me conectar ao Oracle. Se você deseja usar o tnsnames.ora, execute os seguintes passos adicionais:
- Copie o tnsnames.ora para a pasta /usr/lib/instantclient
- Crie uma variável de ambiente, que aponta para a pasta onde está o tnsnames.ora:
sudo sh -c “echo export TNS_ADMIN=/usr/lib/instantclient >> /etc/profile”
- Efetue logoff e login novamente (ou execute o arquivo /etc/profile)
. Para finalizar, uma dica: Para obter as mensagens do Oracle em português, faça:
sudo sh -c “echo export NLS_LANG=’BRAZILIAN PORTUGUESE_BRAZIL.UTF8′ >> /etc/profile”
.
Instalando o PHP
Infelizmente o php que vem no Ubuntu não oferece suporte ao Oracle. Este guia mostra como instalar o php direto dos fontes para que ele consiga conectar-se a este banco de dados.
Pré-Requisito
Passo 0 (zero): É necessário um cliente oracle instalado na máquina. Caso ainda não tenha um e queira instalar um [levíssimo] cliente, acesse este post. Feito isso, siga essas etapas:
Instalação
- Instale o apache e outros pacotes necessários: – e os milhares de dependências

sudo apt-get install apache2 apache2-threaded-dev flex bison libxml2-dev gcc g++ make autoconf automake libtool php-pear build-essential libaio1
- Pode ser necessario reinicializar a maquina apos esta etapa.
- Baixe o [fonte do] php em http://www.php.net/downloads.php
Descompactar em alguma pasta, no meu caso: /home/wendell/php-5.1.4
- Verifique se o /etc/apache2/httpd.conf esta vazio. Se estiver coloque um conteudo para evitar erro:
- Compile o php:
cd /home/wendell/php-5.1.4 ./configure \ –with-apxs2=/usr/bin/apxs2 \ –with-oci8=instantclient,/usr/lib/instantclient \ –with-config-file-path=/etc/php5 \ –prefix=/usr/lib/php make # se der erro no make use make clean make test sudo make install sudo mkdir /etc/php5 sudo cp php.ini-dist /etc/php5
- Adicione ou descomente a linha abaixo do /etc/apache2/apache2.conf:
AddType application/x-httpd-php .php
- Reinicie o apache:
sudo /etc/init.d/apache2 restart
LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so
Adicione --disable-cgi e make install-cli para gerar o php-cli
Pronto. Agora é só testar!
Crie um arquivo vazio com o seguinte conteúdo:
<?php phpinfo(); ?>
E salve-o na pasta padrão do apache – /var/www – com o nome info.php. Abra o browser e visite: http://maquina/info.php Se tudo deu certo, deve haver uma seção OCI8 indicando as propriedades da extensão Oracle
Conectando PHP
Ajustar variaves de anbiente no /etc/profile export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.UTF8" export TNS_ADMIN=/usr/lib/instantclient Criar o tnsnames.ora no /usr/lib/instantclient nomeparaconectar = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = x.y.z.w)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = XE) ) ) Conexão no PHP#