Configurando conexão com PHP + Oracle usando CentOS 6.3 / Red Hat 6.3
Neste artigo vou descrever a maneira mais simples e rapida para configurar o PHP para suporte com Oracle.
Antes de iniciar é necessário ter alguns pacotes básicos instalados;
1 | # yum install gcc gcc-c++ autoconf libaio |
Instalar o servidor web Apache
O comando abaixo instala o servidor web apache.
1 | # yum -y install httpd |
Configure para iniciar junto co o boot
Agora configuramos o apache para iniciar junto com o boot.
1 | # chkconfig httpd on |
Instalar o PHP
Instalando o PHP
1 | # yum -y install php php-devel php-pear |
Para instalar todas as bibliotecas do PHP – esta etapa não é obrigatoria
O comando abaixo instala todas as extensões disponíveis para o PHP
1 | # yum -y install php* |
Configurar o SELINUX
Agora vamos desabilitar SELINUX para não interferir no servidor httpd
1 2 3 | /etc/sysconfig/selinux # SELINUX=disabled |
Instalar o Oracle client
Agora precisamos baixar o client do oracle no site Oracle.com é necessário fazer um cadastro rápido e gratuito.
Lembrando que você deve baixar de acordo com a arquitetura i686 ou x64
O comando abaixo instala os pacotes RPM.
x86_64
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
1 2 | # rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm # rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm |
i686/i386
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm
1 2 | # rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm # rpm -ivh oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm |
Agora é necessário setar a variável D_LIBRARY_PATH para o caminho da instalação do oracle client, que será carregado durante a Instalação do OCI8
1 2 | # export LD_LIBRARY_PATH=/usr/lib/oracle/ # export LD_LIBRARY_PATH=/usr/lib64/oracle/ |
PHP – Instalação das extensões PECL
http://php.net/manual/pt_BR/install.pecl.php
Instalar o OCI – http://pecl.php.net/package/oci8
1 | # pecl install oci8 |
Quando for solicitado o caminho do oracle_home, pressione enter caso tenha usado o comando export LD_LIBRARY_PATH apontando para o caminho do oracle client ou informar o caminho da instalação
Lembrando que tem diferença entre as plataformas i686 e x64(de acordo com a versão de plataforma e client do oracle usados)
Para suporte
http://php.net/manual/pt_BR/install.pecl.php
Editar o arquivo php.ini
1 | # /etc/php.ini |
Acrescentar a linha
1 | # extension=oci8.so |
reiniciar o host
1 | # reboot |
após reiniciar crie um arquivo phpinfo.php
1 | <!--?php phpinfo(); ?--> |
Se tudo ocorreu bem deverá aparecer o modulo OCI conforme a imagem abaixo
Problemas comuns
1 2 3 4 5 6 7 8 9 10 | When running the CLI version of PHP from the command line, you may receive errors like the following: [root@myserver /root]$ php -v PHP Warning: Module 'pcre' already loaded in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so: Undefined symbol "pcre_exec" in Unknown on line 0 PHP Warning: Module 'SimpleXML' already loaded in Unknown on line 0 PHP Warning: Module 'session' already loaded in Unknown on line 0 PHP Warning: Module 'exif' already loaded in Unknown on line 0 PHP 5.2.3 (cli) (built: Jun 14 2007 15:29:17) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies |
Como resolver?
-Verifique se desabilitou o SELINUX após a configuração é necessário reiniciar o host.
Atualizado em 28/04/2018
Para instalar o suporte para PHP 5.4 no Linux CentOS 7
pecl install oci8-2.0.12
Extra: Quando tiver problemas para conexão pelo SQL PLUS (sqlplus command not found on Linux)
(para usar o SQLPLUS)
# yum install glibc.i686
Você pode abrir o SQLPLUS para testar a conexão com o banco de dados
Digite no terminal o comando sqlplus
# sqlplus
Para descobrir o diretorio de instalação do Oracle
#find / -name sqlplus -print
Resultado será parecido com:
# /u01/app/oracle/product/database/bin/sqlplus
Execute o comando para indicador o local
ORACLE_HOME=/u01/app/oracle/product/database
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH