Instalando o Oracle Instant Client e Compilando PHP

Dicas Importantes migrando de MySQL para Oracle em Rael Cunha

Retirado de John Wendell

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.d/instantcliente” sudo ldconfig
    sudo sh -c “echo export LD_LIB_PATH=/usr/lib/instantclient >> /etc/profile”
  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”

.

Instalando o PHP

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 php-pear build-essential libaio1

    2. Pode ser necessario reinicializar a maquina apos esta etapa.
    3. 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
    4. Verifique se o /etc/apache2/httpd.conf esta vazio. Se estiver coloque um conteudo para evitar erro:

LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so

    1. 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 --disable-cgi e make install-cli para gerar o php-cli

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

    AddType application/x-httpd-php .php

  2. Reinicie o apache:

    sudo /etc/init.d/apache2 restart

Pronto. Agora é só testar!

Crie um arquivo vazio com o seguinte conteúdo:

&lt?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#

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s