Conectando Apache/PHP e OCI Oracle
Dica publicada em Linux / Introdução
Conectando Apache/PHP e OCI Oracle
- Apache 2.2.0;
- PHP 5.1.2;
- Oracle Instant Client 10.2 acessando o banco de dados Oracle 10g.
- Apache - http://www.apache.org
- PHP - http://www.php.net
- Oracle Instant Client (Basic, SDK e SQLPlus), atualmente em:
http://www.oracle.com/technology/tech/oci/instantclient/index.html
Descompacte o PHP na pasta /usr/local/. A descompactação deverá gerar o diretório /usr/local/php-x.x.x/ (onde x.x.x é a versão do PHP).
Descompacte os arquivos Oracle na pasta /usr/. A descompactação deverá gerar o diretório /usr/instantclient_x_x/. (onde x.x é a versão do Instant Client).
Entre no diretório do Oracle Instante Client. Digite o comando:
# export LD_LIBRARY_PATH=/usr/instantclient_x_x
(para tornar esse comando definitivo, adicione-o no arquivo ~/.bashrc ou no /etc/profile. Exemplo:
# echo export LD_LIBRARY_PATH=/usr/instantclient_x_x >> ~/.bashrc
Faça um teste no banco de dados Oracle utilizando o sqlplus. Sintaxe:
./sqlplus /
Deverá aparecer a mensagem de bem vindo do Oracle e o prompt do sql plus. Caso não apareça, verifique se a variável de ambiente $LD_LIBRARY_PATH está apontando para o diretório raiz do instantclient e os dados da conexão estão corretos.
Execute alguns testes no seu banco de dados (SELECTS de preferência).
Digite:
# ln libclntsh.so.10.1 libclntsh.so
para criar um link do libclntsh.so.10.1. Esse link será utilizado na instalação do PHP. Atenção: Não crie link simbólico.
Entre no diretório de instalação do Apache: /usr/local/httpd-x.x.x
Instalação do Apache:
# ./configure --prefix=/usr/local/apache2
# make
# make install (Instala o apache no diretório /usr/local/apache2)
Digite:
# /usr/local/apache2/bin/apachectl start
(Inicia o servidor Apache)
Entre no browser e digite "http://localhost" (deverá aparecer uma mensagem de boas vindas ou o simples "It Works!" na versão 2.2).
Digite:
# /usr/local/apache2/bin/apachectl stop
(para o servidor Apache)
Entre no diretório de instalação do PHP: /usr/local/php-x.x.x.
Digite:
# ./configure \
--with-oci8=instantclient,/usr/instantclient_x_x \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-sigchild \
--with-config-file-path=/usr/local/apache2/conf
ATENÇÃO: Essa é a configuração mínima para utilização do Oracle e PHP. Você pode desejar especificar mais parâmetros como MySQL e etc.
# make
# make install
Edite o arquivo /usr/local/apache2/conf/httpd.conf. Procure pela instrução: AddType application/ (Caso não exista, pule esse passo).
Abaixo da instrução já existente digite:
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php-source .phps
Entre no diretório bin do apache: /usr/local/apache2/bin. Digite:
# ./apachectl start
Crie um arquivo PHP (teste.php) no diretório /usr/local/apache2/htdocs/ com o seguinte conteúdo:
phpinfo();
?>
Procure por: OCI8 Support.
Faça os seus testes e boa sorte.
Outras dicas deste autor
Nenhuma dica encontrada.Leitura recomendada
Configurando teclado ABNT (Português) Debian Lenny
Como mudar a imagem de fundo da tela de login do Ubuntu 11.10
Muito boa sua dica...
Porém estou tendo um problema...
Utilizo Red Hat EL5 5.4... tudo funciona muito bem, o apache sobe corretamente, no phpinfo aparece o oci8 carregado... mas qdo acesso o sistema dá erro de conexão com o BD.
restarto o apache com 'service httpd restart' e a situação permanece.
Isso só é resolvido quando carrego o apache desta forma: '/etc/init.d/httpd stop' e em seguida 'start', então a conexão consegue ser realizada.
Procurei na net mas não encontrei nada a respeito até o momento. Tem alguma idéia do que possa ser?
obrigado.
Celso Faria
Americana/SP