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 |
# yum install gcc gcc-c++ autoconf libaio
Instalar o servidor web Apache
O comando abaixo instala o servidor web apache.
Configure para iniciar junto co o boot
Agora configuramos o apache para iniciar junto com o boot.
Instalar o PHP
Instalando o PHP
1
| # yum -y install php php-devel php-pear |
# 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
Configurar o SELINUX
Agora vamos desabilitar SELINUX para não interferir no servidor httpd
1
2
3
| /etc/sysconfig/selinux
# SELINUX=disabled |
/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 |
# 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 |
# 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/ |
# 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
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
Acrescentar a linha
reiniciar o host
após reiniciar crie um arquivo phpinfo.php
1
| <!--?php phpinfo(); ?--> |
<!--?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 |
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