Após uma longa batalha travada com o
Oracle e o
PHP5, com artigos fragmentados e que não funcionavam, finalmente concluí a instalação da extensão oci8.
1 - Instalar os pacotes necessários.
# apt-get install dpkg-dev unzip build-essential flex bison libxml2 libxml2-dev libz libz-dev libjpeg-dev libpng-dev libfreetype6-dev
2 - Baixar os pacotes
Instantclient do Oracle.
Salve os arquivos onde você quiser, aconselho criar uma pasta no /opt chamada "instantclient", pois será usada nos exemplos a seguir.
# mkdir /opt/instantclient
Após a instalação será necessário baixar dois pacotes do site do Oracle, os pacotes são os seguintes:
- instantclient-basic-linux32-11.1.0.7.zip
- instantclient-sdk-linux32-11.1.0.7.zip
e o link é:
Você terá que fazer um cadastro rápido para baixar os arquivos.
3 - Descompactar os arquivos.
Baixou? Salvou? Ok, descompacte os arquivos.
# unzip instantclient-basic-linux32-11.1.0.7.zip
# unzip instantclient-sdk-linux32-11.1.0.7.zip
Será gerada uma pasta chamada "instantclient_11_1" e o caminho completo deve ser esse /opt/instantclient/instantclient_11_1.
4 - Link simbólico necessário:
# ln -sf /opt/instantclient/instantclient_11_1/libclntsh.so.11.1 /usr/local/instantclient_11_1/libclntsh.so
5 - Acrescentar o caminho do Instantclient ao /etc/ld.so.conf
# vi /etc/ld.so.conf
Adicione as seguintes linhas:
/opt/instantclient/instantclient_11_1
/usr/local/lib/
6 - Apagar o arquivo
/etc/ld.so.cache e regerá-lo:
# rm /etc/ld.so.conf
# ldconfig
7 - Garanta que seu instantclient esteja ok:
# ldconfig -p | grep instantclient
8 - Baixando os sources do PHP5:
# cd /opt
# mkdir php5
# cd php5
# apt-get source php5
9 - Preparando e compilando:
# cd php5-5.2.4 (pode variar diante da versão)
Vamos limpar o diretório de compilações anteriores:
# make clean
# rm config.cache
e finalmente...
# ./configure --with-oci8=shared,instantclient,/opt/instantclient/instanclient_11_1
Se tudo der certo, deve haver uma mensagem dentro da sessão "Configuring extensions" como:
"... Configuring extensions ... checking for Oracle (OCI8) support... yes, shared ..."
# make
10 - Copiando para o diretório de modules do PHP5:
# cp /opt/php5/php5-5.2.4/modules/oci8.so /usr/lib/php5/20060613+lfs/
11 - Acrescentando a extensão no
php.ini:
Procure a sessão extension (pode ser qualquer linha) em
/etc/php5/apache2/php.ini e adicione o seguinte conteúdo:
extension=oci8.so
12 - Reiniciar o Apache para que os novos arquivos possam ser lidos:
# /etc/init.d/apache2 restart
13 - Crie dentro de /var/www um arquivo chamado index.php:
# vi /var/www/index.php
e adicione:
<?
phpinfo();
?>
Acesse http://localhost/index.php (local) e http://ipdoservidor/index.php e procure pelo módulo oci8, se ele aparecer, pode ficar feliz, está tudo ok.
Pronto, você acaba de fazer uma instalação completa do PHP5 com suporte ao Oracle 11g. Para outras versões do Oracle, acredito que só mude o istantclient.
Tentei facilitar ao máximo a compreensão para que qualquer pessoa, seja iniciante ou mestre, consiga fazer rápido.
Dúvidas, estou a disposição.