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
Soluções alternativas no Kurumin
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