Abaixo vou descrever como fiz para comunicar meu servidor web usando
Apache e
PHP ao meu servidor
Oracle que está instalado em outro servidor.
Instalando e configurando
Para este tutorial utilizei a versão 10.2 do
Slackware.
Pacotes utilizados
- instantclient-sdk-linux32-10.2.0.3-20061115.zip
- instantclient-sqlplus-linux32-10.2.0.3-20061115.zip
- oracle-instantclient-basic-10.2.0.4-1.i386.zip
- apache_1.3.41.tar.gz
- php-5.0.4.tar.gz
Os pacotes do Oracle client foram baixados direto do site da Oracle.
Oracle Client
# unzip instantclient-sdk-linux32-10.2.0.3-20061115.zip
# unzip instantclient-sqlplus-linux32-10.2.0.3-20061115.zip
# unzip oracle-instantclient-basic-10.2.0.4-1.i386.zip
Irá gerar um diretório chamado "instantclient_10_2". Copie o diretório para o /etc.
# cp instantclient_10_2 /etc/
Crie um link da lib com o nome abaixo:
# ln -sf libclntsh.so.10.1 libclntsh.so
Apache
Primeiro desinstale o Apache, caso esteja instalado. Por padrão o Slackware vem com Apache instalado.
# removepkg apache
Agora vamos compilar o apache-xx.tar.gz:
# tar -zxvf apache-xx.tar.gz
# cd apache-xx
# ./configure --enable-module=so --prefix=/etc/apache --with-port=80
# make
# make install
Não ocorrendo erros o Apache se encontra instalado dentro do diretório /etc/apache.
Configurando:
Edite o arquivo httpd.conf e adicione as linhas:
# mcedit /etc/apache/conf/httpd.conf
Insira as linhas abaixo no arquivo, salve e feche:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHP 5
Primeiro desinstale o PHP, caso esteja instalado:
# removepkg php
Agora vamos compilar o PHP com os parâmetro do Oracle:
# tar -zxvf php-xx.tar.gz
# cd php-xx.tar.gz
# ./configure --with-oci8-instant-client=/etc/instantclient_10_2 \
--prefix=/etc/php --with-apxs=/etc/apache/bin/apxs \
--enable-sigchild \
--with-config-file-path=/etc/apache/conf
# make
# make install
Não havendo erros, o PHP está compilado para trabalhar com o Oracle.
Testando
Primeiro testaremos se o Apache está pronto para trabalhar com o PHP:
# /etc/apache/bin/apachectl start
# mcedit /etc/apache/htdocs/teste.php
Insira as linhas abaixo no arquivo, salve e feche.
<?
phpinfo();
?>
Agora abra seu browser e teste:
HTTP://IP_DO_SERVIDOR/teste.php
Abrirá a página com informações sobre o PHP.
Agora testaremos com uma conexão ao banco de dados Oracle:
# mcedit /etc/apache/htdocs/Oracle.php
Insira as linhas abaixo no arquivo, alterando as configurações do seu Oracle, salve e feche:
<?php
$conn = OCILogon('usuário', 'senha', '//10.0.10.11:1521/nome_do_banco');
$query = "select nome from tabela";
$stid = OCIParse($conn, $query);
OCIExecute($stid, OCI_DEFAULT);
while ($succ = OCIFetchInto($stid, $row)) {
foreach ($row as $item) {
echo $item." ";
}
echo "<br>\n";
}
OCILogoff($conn);
?>