PHP and Oracle on Ubuntu Server|PHP e Oracle no Ubuntu Server

Here are a few steps to have your PHP with Oracle (OCI8) support. I assume you already have Apache and PHP running. I have tested this procedure with Ubuntu 8.04 (Hardy, LTS) Server Edition.
Segue alguns poucos passos para ter o PHP com suporte a Oracle (OCI8). Estou assumindo que Apache e PHP já estão instalados e executando. Testei estes procedimentos no Ubuntu 8.04 (Hardy, LTS) Server Edition.

Install some needed packages:
Instale alguns pacotes necessários:

sudo apt-get install php-pear php5-dev libaio1 build-essential

Baixe o Oracle Instant Client:
Download the Oracle Instant Client:
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html

Você precisa dos pacotes:
You need the packages:

  • Basic client
  • SDK
  • SQL Plus (Optional)

Unzip all downloaded files in /opt/instantclient
Descompacte os arquivos baixados em /opt/instantclient

Execute os comandos abaixo:
Run the commands below:

cd /opt/instantclient
sudo ln -s libclntsh.so.11.1 libclntsh.so
sudo ln -s libocci.so.11.1 libocci.so
sudo sh -c ‘echo “/opt/instantclient” > /etc/ld.so.conf.d/oracle.conf’
sudo ldconfig

Vamos instalar o módulo OCI8:
Let’s install OCI8 module:

sudo pecl install oci8

Quando for perguntado o path (caminho) do Oracle, digite:
When asked for Oracle PATH, type:

all <ENTER>
instantclient,/opt/instantclient <ENTER>
<ENTER>

Coloque a extensão recém criada nas configurações do PHP:
Put the newly created extension in PHP config:

sudo sh -c ‘echo “extension=oci8.so” > /etc/php5/conf.d/oracle.ini’

Reinicie o apache:
Restart your apache:

sudo /etc/init.d/apache2 restart

Verifique com phpinfo() se o módulo OCI8 foi carregado.
Check with phpinfo() if OCI8 module was loaded.

É isso!
That’s All!

Mapeamento Objeto->Relacional

Acabei de encontrar um artigo muito legal que mostra como fazer o mapeamento de objetos para bancos de dados relacionais. Muito legal, bem prático mesmo. Ele mostra várias abordagens/técnicas. Alguma delas vai te servir.

Um exemplo dele é o seguinte: Você possui uma classe mãe (abstrata), chamada Pessoa. E duas classes filhas (concretas) chamadas Cliente e Funcionário. Como armazenar estas classes em um banco de dados relacional? Ele mostra como.

Artigo: http://www.agiledata.org/essays/mappingObjects.html

Boa leitura!

PHP acessando Oracle no Ubuntu Server 6.06

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

  1. 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

  2. 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
  3. 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
    sudo make install
    sudo mkdir /etc/php5
    sudo cp php.ini-dist /etc/php5

  4. Adicione ou descomente a linha abaixo do /etc/apache2/apache2.conf:

    AddType application/x-httpd-php .php

  5. Reinicie o apache:

    sudo /etc/init.d/apache2 restart

Pronto. Agora é só testar!

Crie um arquivo vazio com o seguinte conteúdo:

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.

Até a próxima!

Fiquem a vontade para tirar dúvidas. Usem a área de comentários ou entrem em contato diretamente: wendell_listas@bani.com.br

Instalando o Oracle Instant Client no Ubuntu Server 6.06

Olá, pessoal. Segue um roteiro de como, em questão de minutos, ter um cliente oracle pronto pra funcionar no Linux.

  1. Baixe os arquivos Basic, SDK e SQL*Plus, salve-os em uma pasta temporária.
  2. Descompacte os três arquivos (.zip) no diretório /usr/lib/instantclient
  3. Crie um link simbólico:

    cd /usr/lib/instantclient
    sudo ln -s libclntsh.so.10.1 libclntsh.so

  4. Ajustar o ldconfig para essa pasta:
    sudo sh -c “echo /usr/lib/instantclient >> /etc/ld.so.conf”
    sudo ldconfig
  5. 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:

  1. Copie o tnsnames.ora para a pasta /usr/lib/instantclient
  2. 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”

  3. 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”

.

.

Fiquem a vontade para tirar dúvidas. Usem a área de comentários ou entrem em contato diretamente: wendell_listas@bani.com.br